Das Beispiel in diesem Artikel beschreibt die Verwendung von Resource Autoloading im Zend Framework. Geben Sie es als Referenz an alle weiter. Die Details lauten wie folgt:
Normalerweise wird bei der Entwicklung von Anwendungen der Klassendateiname möglicherweise nicht gemäß den Standardempfehlungen von Zend Framework definiert, was bedeutet, dass Ihre Klassendatei dies nicht tun kann automatisch vom Loader Discover geladen. Zend_Loader_Autoloader_Resource bietet die Lösung.
Eine Ressource ist lediglich ein Name, der dem Namespace (an den Autoloader angehängter Namespace) und dem Pfad (relativ zum Basispfad des Autoloaders) entspricht:
$loader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Blog', 'basePath' => APPLICATION_PATH . '/modules/blog', ));
Das konkrete Beispiel lautet wie folgt:
Pfad/zu/einigen/Ressourcen/
|--formen/
| `-- Guestbook.php // Foo_Form_Guestbook
|-- DbTable/
| >|. `-- GuestbookMapper.php // Foo_Model_GuestbookMapper
Ressourcenlader erstellen:
$loader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => 'path/to/some/resources/', 'namespace' => 'Foo', ));Ressourcentyp definierenZend_Loader_Autoloader_Resourse::addResourceType() hat drei Parameter: Ressourcenname, relativer Ressourcenpfadname des angegebenen Ressourcenpfads und Ressourcentyp-Komponentenpräfix. Im obigen Baum haben wir drei Ressourcentypen: Formular (im Unterverzeichnis „Forms“ lautet das Ressourcenpräfix „Form“), Modell (im Unterverzeichnis „Models“ lautet das Ressourcenpräfix „Model“) und dbtable (im Unterverzeichnis models lautet das Ressourcenpräfix Model) Im Verzeichnis „models/DbTable“ lautet das Ressourcenpräfix „Model_DbTable“). ist konkret wie folgt definiert:
$loader->addResourceType('form', 'forms', 'Form') ->addResourceType('model', 'models', 'Model') ->addResourceType('dbtable', 'models/DbTable', 'Model_DbTable');kann auch im Konstruktor
$resourceLoader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => 'path/to/some/directory', 'namespace' => 'My', 'resourceTypes' => array( 'acl' => array( 'path' => 'acls/', 'namespace' => 'Acl', ), 'form' => array( 'path' => 'forms/', 'namespace' => 'Form', ), 'model' => array( 'path' => 'models/', 'namespace' => 'Model', ), ), ));
Zum Definieren von Ressourcen verwenden
$form = new Foo_Form_Guestbook(); $guestbook = new Foo_Model_Guestbook();
Ressourcen in Modulen werden automatisch geladen
Zend Framework's MVC Die Verwendung von „Modulen“ wird empfohlen. Module verfügen normalerweise standardmäßig über ein Standardverzeichnislayout. In diesem Paradigma sind Ressourcen-Autoloader sehr nützlich und standardmäßig aktiviert.
Grundlegende Verzeichnisstruktur des Moduls:
d2397dd86d29a9a1cff681f5f46c559c
configs/application.ini
controllers/ helpers/
forms/
Layouts/
. Filter/
> Scripts/
Bootstrap.php
Sie können Zend_Application_Module_Bootstrap erweitern, um eine Modul-Boot-Klasse Bootstrap.php zu erstellen. Das spezifische Laden von Ressourcen ist ähnlich zum Standard-Ressourcenladen.
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit PHP-Programmierung befassen.
Weitere Artikel zu den Anwendungsbeispielen für das automatische Laden von Ressourcen im Zend Framework-Tutorial finden Sie auf der chinesischen PHP-Website!