Smarty 3 und __autoload()

Da das neue Smarty 3 komplett in PHP 5 neugeschrieben wurde, wird dort auch die Interzeptormethode __autoload() verwendet. Zumindest wird mit spl_autoload_register() ein eigener Autoloader festgelegt. Der Standard-Autloader steht damit nicht mehr zur Verfügung.

Um nun dennoch automatisch Klassen bei Bedarf einzubinden, kann man mit spl_autoload_register(’mein_autoloader’) einfach einen weiteren, eigenen Autoloader registrieren, den man dann noch im globalen Namensraum deklariert.

Kleiner Tipp von mir: nicht require() verwenden ;). Der spl_autoloader versucht nacheinenander mit den registrierten Loadern die benötigten Klassen einzubinden. Da er hier nach dem LiFo-Prinzip vorgeht, wird also der zuletzt registrierte Loader zuerst verwendet (also der eigene). Wenn dieser dann mit require() versucht eine Smarty-Klasse einzubinden, die er nicht findet, gibt es einen fatal-error. Mit @include() wird dann einfach mit dem nächsten Loader weitergemacht.


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

AddThis Social Bookmark Button

One Response to “Smarty 3 und __autoload()”

  1. […] Leider funktioniert jetzt mein Script nicht mehr. Zu diesem thema hab ich auch dieses gefunden:Smarty 3 und __autoload() php-books.de allerdings weiß ich nicht, was ich jetzt ändern muss, damitt smarty bei mir funktioniert? Danke […]

Leave a Reply


Comments links could be nofollow free.


Amazon Bookshop