Zend Framework教程之Resource Autoloading用法實例
本文實例講述了Zend Framework中Resource Autoloading用法。分享給大家供大家參考,具體如下:
通常,在開發(fā)應(yīng)用程序中,可能類文件名不能按照標(biāo)準(zhǔn)Zend Framework的建議定義的,這意味著你的類文件不能被自動加載器發(fā)現(xiàn)。Zend_Loader_Autoloader_Resource提供了解決方案。
資源僅僅是一個名稱對應(yīng)一個組件的命名空間(追加到自動加載器的命名空間)和路徑(相對的自動加載器的基本路徑),例如可以這樣:
$loader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Blog', 'basePath' => APPLICATION_PATH . '/modules/blog', ));
具體實例如下:
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()有三個參數(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鼓勵使用“modules”,模塊默認(rèn)情況下,通常有一些資源類型,Zend Framework提供了一個模塊的標(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
你可以擴(kuò)展Zend_Application_Module_Bootstrap創(chuàng)建一個模塊引導(dǎo)類 Bootstrap.php,具體的資源加載和默認(rèn)的資源加載使用類似。
更多關(guān)于zend相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《Yii框架入門及常用技巧總結(jié)》、《ThinkPHP入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- Zend Framework教程之Zend_Db_Table用法詳解
- Zend?Framework框架db類select查詢器join鏈表使用示例
- PHP 源代碼分析 Zend HashTable詳解
- Zend Framework入門知識點小結(jié)
- Zend Framework緩存Cache用法簡單實例
- Zend Framework連接Mysql數(shù)據(jù)庫實例分析
- Zend Framework+smarty用法實例詳解
- Zend Framework教程之Application和Bootstrap用法詳解
- Zend Framework教程之Loader以及PluginLoader用法詳解
- Zend Framework教程之Autoloading用法詳解
- Zend Framework教程之MVC框架的Controller用法分析
- Zend Framework教程之路由功能Zend_Controller_Router詳解
- Zend Framework教程之Zend_Controller_Plugin插件用法詳解
- Zend Framework教程之Zend_Db_Table_Row用法實例分析
相關(guān)文章
Zend Framework教程之動作的基類Zend_Controller_Action詳解
這篇文章主要介紹了Zend Framework教程之動作的基類Zend_Controller_Action的用法,結(jié)合實例形式詳細(xì)分析了動作的基類Zend_Controller_Action具體功能,使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-03-03thinkphp3.2嵌入百度編輯器ueditor的實例代碼
本篇文章主要介紹了thinkphp3.2嵌入百度編輯器ueditor的實例代碼,具有一定的參考價值,有興趣的可以了解一下2017-07-07ThinkPHP整合datatables實現(xiàn)服務(wù)端分頁的示例代碼
下面小編就為大家分享一篇ThinkPHP整合datatables實現(xiàn)服務(wù)端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02PHP文件及文件夾操作之創(chuàng)建、刪除、移動、復(fù)制
這篇文章主要介紹了PHP文件及文件夾操作之創(chuàng)建、刪除、移動、復(fù)制的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07thinkPHP訂單數(shù)字提醒功能的實現(xiàn)方法
這篇文章主要介紹了thinkPHP訂單數(shù)字提醒功能的實現(xiàn)方法,涉及thinkPHP數(shù)據(jù)庫查詢、遍歷及前臺顯示相關(guān)功能實現(xiàn)技巧,需要的朋友可以參考下2016-12-12