The fact there are protected methods is historical. There can be interactions between base class and subclasses via overridden protected methods, so protected methods are de-facto a public interface.
Subclassing may cause Fragile Base Class Problem (the non-C++ kind), so I prefer to mark all methods private unless I explicitly intended them to be overridden, thought through interdependencies and committed to not changing them. -- regards, Kornel On 15 sie 2012, at 14:56, Robert Goldsmith <[email protected]> wrote: > Hello :) > > Thanks for those pointers :D I'm also going to override prepare() to throw an > exception if the template needs parsing because this won't be allowed on a > live system. > > One thing I have noticed, however, is that 4 functions in the PHPTAL class > are private rather than protected: > getPreFiltersCacheId() > getPreFilterInstances() > setCodeFile() > getFunctionNamePrefix() > > Is there a specific reason for this or is it just historical? Obviously it is > much harder to subclass a class with private methods. > > Robert > ----- > Robert Goldsmith > [email protected] > > > > > On 15 Aug 2012, at 14:08, Kornel Lesi��ski <[email protected]> wrote: > >> The hash is computed in PHPTAL::getFunctionName(). Filename is built from >> that name. >> >> Subclass PHPTAL class and override this method to compute unique name from >> path/settings you care about. >> >> Also override cleanUpGarbage() to stop it from deleting compiled templates. >> >> -- >> regards, Kornel >> >> >> On 15 sie 2012, at 09:59, Robert Goldsmith <[email protected]> wrote: >> >>> Hi all, >>> >>> We're implementing a deployment system using phars and pre-compiled >>> templates from phptal and things are mostly going well but we've noticed >>> that the template file hashes appear to be based on the full path of the >>> template when it is initially compiled. Obviously if we then move the >>> templates (put them in a phar and drop them on a different server) this >>> isn't going to work. >>> >>> Has anyone attempted to change the way the template name hashes are >>> calculated before and can they give me some pointers as to the way to go >>> about doing it? >>> >>> Robert >>> ----- >>> Robert Goldsmith >>> [email protected] >>> >>> >>> >>> >>> >>> _______________________________________________ >>> PHPTAL mailing list >>> [email protected] >>> http://lists.motion-twin.com/mailman/listinfo/phptal >> >> _______________________________________________ >> PHPTAL mailing list >> [email protected] >> http://lists.motion-twin.com/mailman/listinfo/phptal > > > _______________________________________________ > PHPTAL mailing list > [email protected] > http://lists.motion-twin.com/mailman/listinfo/phptal _______________________________________________ PHPTAL mailing list [email protected] http://lists.motion-twin.com/mailman/listinfo/phptal
