Re: Re: how to overload accessible methods

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



thanks for all your reply, since all these classes have main entry in
cron.php, I have moved validation there.
Richard, your solution seems interesting, maybe I can use it later :)

On Thu, Apr 15, 2010 at 4:46 AM, Richard Quadling
<rquadling@xxxxxxxxxxxxxx> wrote:
> On 13 April 2010 17:25, Ryan Sun <ryansun81@xxxxxxxxx> wrote:
>> this is a class for corntab job, and the validation is very simple,
>> just check if the status of user is active when cron job runs, if not,
>> throws an exception, other developers won't want to overwrite this
>> validation.
>> which method of user class will be called is configurable via website
>> backed page(we write the name of methods directly in to  schedule
>> table).
>> Using private methods will solve the problem but since we write public
>> methods for all the other cron classes, I just want to keep the style
>> to make less confusion.
>>
>> On Tue, Apr 13, 2010 at 12:11 PM, Nathan Rixham <nrixham@xxxxxxxxx> wrote:
>>> Ryan Sun wrote:
>>>> I'm writing an abstract parent class which only contain a validate
>>>> method, other developers will extend this class and add many new
>>>> public methods, every new methods will need to perform a validate
>>>> first.  Won't it be good if validate get called automatically before
>>>> every method call so that they don't have to write more code and they
>>>> won't miss this validate?
>>>
>>> This may call for a back to roots approach, what exactly are you trying
>>> to accomplish, as in: what is the validation doing?
>>>
>>> perhaps if we see the full picture, we can recommend another perhaps
>>> more suited approach to the full thing, feel free to post the full code
>>> if you want / can, the more info the better!
>>>
>>> Regards,
>>>
>>> Nathan
>>>
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
> Would this be better ...
>
> abstract class baseValidate() {
>  final public function __construct($params) {
>  // Determine if user is active.
>  // If OK, then call abstract function postConstruct($params)
>  }
>
>  abstract function postConstruct($params);
> }
>
>
> You can't override the constructor, so the validation will always be
> called. The developer's can implement their own postConstruct as if
> they where extending __construct.
>
>
>
> --
> -----
> Richard Quadling
> "Standing on the shoulders of some very clever giants!"
> EE : http://www.experts-exchange.com/M_248814.html
> EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
> Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
> ZOPA : http://uk.zopa.com/member/RQuadling
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux