您好,登錄后才能下訂單哦!
Zend Framework中Resource Autoloading如何使用,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
通常,在開發(fā)應(yīng)用程序中,可能類文件名不能按照標(biāo)準(zhǔn)Zend Framework的建議定義的,這意味著你的類文件不能被自動加載器發(fā)現(xiàn)。Zend_Loader_Autoloader_Resource提供了解決方案。
資源僅僅是一個(gè)名稱對應(yīng)一個(gè)組件的命名空間(追加到自動加載器的命名空間)和路徑(相對的自動加載器的基本路徑),例如可以這樣:
$loader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Blog', 'basePath' => APPLICATION_PATH . '/modules/blog', ));
具體實(shí)例如下:
path/to/some/resources/
|-- forms/
| `-- Guestbook.php // Foo_Form_Guestbook
|-- models/
| |-- DbTable/
| | `-- Guestbook.php // Foo_Model_DbTable_Guestbook
| |-- Guestbook.php // Foo_Model_Guestbook
| `-- GuestbookMapper.php // Foo_Model_GuestbookMapper
創(chuàng)建資源裝載器:
$loader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => 'path/to/some/resources/', 'namespace' => 'Foo', ));
定義資源類型
Zend_Loader_Autoloader_Resourse::addResourceType()有三個(gè)參數(shù):資源名稱,指定的資源路徑的相對資源路徑名, 資源類型組件前綴。
在上面的樹,我們有三種資源類型:form(在子目錄forms中,資源前綴是Form),model(在子目錄models中,資源前綴是Model),并dbtable(在子目錄“models/DbTable”中,資源前綴是“Model_DbTable”)。
具體定義如下:
$loader->addResourceType('form', 'forms', 'Form') ->addResourceType('model', 'models', 'Model') ->addResourceType('dbtable', 'models/DbTable', 'Model_DbTable');
也可以在構(gòu)造函數(shù)中指定
$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', ), ), ));
使用以定義資源
$form = new Foo_Form_Guestbook(); $guestbook = new Foo_Model_Guestbook();
模塊中的資源自動加載
Zend Framework的MVC鼓勵(lì)使用“modules”,模塊默認(rèn)情況下,通常有一些資源類型,Zend Framework提供了一個(gè)模塊的標(biāo)準(zhǔn)目錄布局。在這種范式中,資源自動加載器非常有用,他們是默認(rèn)啟用的。
模塊的基本目錄結(jié)構(gòu):
<modulename>
configs/
application.ini
controllers/
helpers/
forms/
layouts/
filters/
helpers/
scripts/
models/
services/
views/
filters/
helpers/
scripts/
Bootstrap.php
關(guān)于Zend Framework中Resource Autoloading如何使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。