Der Autoloader des Zend Framework ist ein sehr geniales Teil. Dank ihm kann man auf das obligatorische require_once()
am Anfang jeder Datei im application-Ordner verzichten. Er erkennt, wenn eine Datei geladen werden muss, damit ein Entwickler sich darum keine Sorgen machen braucht. It just works.
Bisher wurde der Autoloader immer so oder so ähnlich in einer eigenen Funktion innerhalb der Bootstrap.php initiert:
$loader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Application_',
'basePath' => APPLICATION_PATH,
));
Eigenen Namespace verwenden
Statt dem hier gewählten default-namespace Application_
kann man natürlich auch einen eigenen angeben. Würde dann so hier aussehen:
$loader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'MeinGeilerNamespace_',
'basePath' => APPLICATION_PATH,
));
Ein Model, das vom Autoloader automatisch erkannt würde, hieße dann beispielsweise MeinGeilerNamespace_Model_IrgendeinModelName. Logisch, ne?
application.ini mit einer Zeile statt Bootstrap.php mit 6 Zeilen
Da ich aber meist nur den stinknormalen Application-Namespace verwende, habe ich mich gefragt, ob das nicht einfacher zu realisieren ist. Das Halten an Konventionen sollte eigentlich dafür sorgen, dass solche Vorgänge einfacher werden. Und ich sollte recht behalten.
Statt den oben aufgeführten Zeilen in der Bootstrap.php kann man einfach folgende Zeile in die application.ini schreiben:
appnamespace = "MeinGeilerNamespace"
Hammer, ne? 😉