Wie lade ich automatisch Framework-Klassen, wenn ich das MVC-Framework nicht verwende?Zend Framework 1.9: Wie verwende ich Autoloading ohne MVC?
Antwort
Die nette Sache über das Zend Framework ist, dass es extrem modular ist, können Sie fast jedes Stück davon verwenden Sie das Ganze ohne die Annahme wollen.
Zum Beispiel können wir Zend_Loader_Autoloader
verwenden Klasse Auto-Laden einzurichten, ohne Zend_Application
Zuerst stellen Sie sicher, die Zend-Bibliothek in Ihrem Include-Pfad ist zu verwenden:
set_include_path('/path/to/zend/' . PATH_SEPARATOR . get_include_path());
dann die Autoloader benötigen Klasse:
require_once 'Zend/Loader/Autoloader.php';
Dann setzen wir den Autoloader auf:
// instantiate the loader
$loader = Zend_Loader_Autoloader::getInstance();
// specify class namespaces you want to be auto-loaded.
// 'Zend_' and 'ZendX_' are included by default
$loader->registerNamespace('My_App_');
// optional argument if you want the auto-loader to load ALL namespaces
$loader->setFallbackAutoloader(true);
Sobald der Auto-Loader (vorzugsweise in einem Bootstrap oder etwas) eingerichtet ist, können Sie Zend Framework-Klassen aufrufen (oder Ihre eigene App-Klassen), ohne sie individuell zu verlangen, mit:
$foo = new Zend_Library_Class();
$bar = new My_App_Class();
Lesen Sie mehr darüber in der documentation
Zend Framework hat einen Autoloader eingebaut, dass der Asker verwenden sollte. – notJim
was abt laden zend Framework-Klassen? Momentan möchte ich noch nicht meine eigenen Klassen laden – iceangel89
Der Autoloader lädt die Zend-Klassen standardmäßig. Wenn sich die Zend-Bibliothek in Ihrem Include-Pfad befindet, können Sie jede Klasse laden, indem Sie Folgendes benötigen: "require_once ('Zend/Class/Path'.php'). Aber mit dem Autoloader müssen Sie das nicht einmal tun. Wenn der Autoloader ordnungsgemäß funktioniert, sollten Sie die Zend Klassen ohne Probleme zu verweisen fähig sein: php $ myview = new Zend_View?> Sie den Autoloader nur selbst verwenden können, keine anderen Klassen Zend muss geladen werden, damit es funktioniert –
mit anderen Worten, ich brauche nur $ loader = Zend_Loader_Autoloader :: getInstance(); richtig? – iceangel89