Michael Virnstein wrote:
- final classes:
final classes can't be extendedalready supported
Cannot find it in the docs.
http://www.php.net/manual/en/language.oop5.final.php doesn't seem to have
any comments on that.
I'm not at home at the moment, so i couldn't try, but are you really sure
that final CLASSES are supported?
You're not confusing it with final METHODS, right?
andrey@vivaldi:~> php -r 'final class a{} class b extends a{}'
Fatal error: Class b may not inherit from final class (a) in Command line code on line 1
A good example for a static class imo, would be e.g. PEAR's DB Class. The
DB-Class itself doesn't need to be instantiate,
it simply works as factory and has some functions to check stuff. that'd be
a class that i would define as
"final static class DB {}". The class should not be extended and should not
containt non static methods or attributes. Sure it isn't
a big deal, if ppl are instantiating the DB Class, but it only has static
methods and instantiating it wouldn't make any sense.
Make the constructor private and the class final. No instance will be available,
and no inheritance possible. Methods has to work, and therefore they may not
expect to have $this available in them.
Andrey