Heim > php教程 > PHP开发 > Hauptteil

Beispiel für die Verwendung des automatischen Ladens von Ressourcen im Zend Framework-Tutorial

高洛峰
Freigeben: 2017-01-03 12:57:40
Original
1214 Leute haben es durchsucht

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',
));
Nach dem Login kopieren

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',
));
Nach dem Login kopieren

Ressourcentyp definieren

Zend_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');
Nach dem Login kopieren

kann auch im Konstruktor

< angegeben werden 🎜>

$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
  &#39;basePath&#39;   => &#39;path/to/some/directory&#39;,
  &#39;namespace&#39;   => &#39;My&#39;,
  &#39;resourceTypes&#39; => array(
    &#39;acl&#39; => array(
      &#39;path&#39;   => &#39;acls/&#39;,
      &#39;namespace&#39; => &#39;Acl&#39;,
    ),
    &#39;form&#39; => array(
      &#39;path&#39;   => &#39;forms/&#39;,
      &#39;namespace&#39; => &#39;Form&#39;,
    ),
    &#39;model&#39; => array(
      &#39;path&#39;   => &#39;models/&#39;,
      &#39;namespace&#39; => &#39;Model&#39;,
    ),
  ),
));
Nach dem Login kopieren

Zum Definieren von Ressourcen verwenden

$form   = new Foo_Form_Guestbook();
$guestbook = new Foo_Model_Guestbook();
Nach dem Login kopieren

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:

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage