Dan doe je echt iets goed verkeerd. In PHP heeft elke klasse maar 1 functie, je autoloader laad nu klassen in en initialiseerd klassen. Daarnaast bepaald hij dus ook nog het type klasse. Dat is veel te veel voor een autoloader.
Een autoloader hoort alleen te laden, meer niet. De rest is de verantwoordelijkheid van andere klassen.
Is een keuze Wouter. Het is een handigheidje waardoor ik statische classes automatisch kan initialiseren, net zoals niet-statische classes automatisch worden geconstruct. Op het moment dat een class in gebruik wordt genomen, moet ie gebruiksklaar worden gemaakt. Anders kun je de class niet op een geldige manier gebruiken. Je zou het initialiseren dus kunnen zien als onderdeel van het laden.
Wacht even, een statische klasse die gebruiksklaar gemaakt moet worden? Dat kan niet. Static betekend dat ze niet afhankelijk zijn van een instance of wat dan ook. In andere woorden: static klassen zijn altijd klaar voor uitvoeren. Static klassen zijn niet meer dan losse functies groeperen.
En toch (hoewel het niet vaak zal voorkomen) kan er zich een situatie voordoen waarin je een statische class wilt initialiseren. Ik heb een statische class waarbij ik iets met de class constants moet doen, voordat je de class kunt gebruiken. Nu kan ik telkens als ik een method in die class aanroep controleren of die handeling al is uitgevoerd, of ik initialiseer de class eenmalig bij het inladen.
Ozzie, dan is er nog een mogelijkheid: je kunt de configuratie van een klasse eenmalig inladen zonder de klasse zelf te laden. Dat is eigenlijk ook wat er gebeurt met configuratie-instellingen in php.ini.
Als je die "static" klasse abstract maakt, werken de static methoden overigens ook nog steeds. Dat lijkt me dan de elegantste work-around.