Zend Framework教程之Resource Autoloading用法實(shí)例
本文實(shí)例講述了Zend Framework中Resource Autoloading用法。分享給大家供大家參考,具體如下:
通常,在開發(fā)應(yīng)用程序中,可能類文件名不能按照標(biāo)準(zhǔn)Zend Framework的建議定義的,這意味著你的類文件不能被自動(dòng)加載器發(fā)現(xiàn)。Zend_Loader_Autoloader_Resource提供了解決方案。
資源僅僅是一個(gè)名稱對(duì)應(yīng)一個(gè)組件的命名空間(追加到自動(dòng)加載器的命名空間)和路徑(相對(duì)的自動(dòng)加載器的基本路徑),例如可以這樣:
$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ù):資源名稱,指定的資源路徑的相對(duì)資源路徑名, 資源類型組件前綴。
在上面的樹,我們有三種資源類型: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();
模塊中的資源自動(dòng)加載
Zend Framework的MVC鼓勵(lì)使用“modules”,模塊默認(rèn)情況下,通常有一些資源類型,Zend Framework提供了一個(gè)模塊的標(biāo)準(zhǔn)目錄布局。在這種范式中,資源自動(dòng)加載器非常有用,他們是默認(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)建一個(gè)模塊引導(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è)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- Zend Framework教程之Zend_Db_Table用法詳解
- Zend?Framework框架db類select查詢器join鏈表使用示例
- PHP 源代碼分析 Zend HashTable詳解
- Zend Framework入門知識(shí)點(diǎn)小結(jié)
- Zend Framework緩存Cache用法簡單實(shí)例
- Zend Framework連接Mysql數(shù)據(jù)庫實(shí)例分析
- Zend Framework+smarty用法實(shí)例詳解
- 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用法實(shí)例分析
相關(guān)文章
php安裝擴(kuò)展mysqli的實(shí)現(xiàn)步驟及報(bào)錯(cuò)解決辦法
這篇文章主要介紹了 php安裝擴(kuò)展mysqli的實(shí)現(xiàn)步驟及報(bào)錯(cuò)解決辦法的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
確保Laravel網(wǎng)站不會(huì)被嵌入到其他站點(diǎn)中的方法
這篇文章主要介紹了確保Laravel網(wǎng)站不會(huì)被嵌入到其他站點(diǎn)中的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Codeigniter控制器controller繼承問題實(shí)例分析
這篇文章主要介紹了Codeigniter控制器controller繼承問題,以簡單實(shí)例形式分析了CodeIgniter中針對(duì)控制器controller繼承的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2016-01-01
Yii2框架dropDownList下拉菜單用法實(shí)例分析
這篇文章主要介紹了Yii2框架dropDownList下拉菜單用法,結(jié)合實(shí)例形式分析了Yii框架中dropDownList下拉菜單的定義、實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下2016-07-07
詳細(xì)Laravel5.5執(zhí)行表遷移命令出現(xiàn)表為空的解決方案
這篇文章主要介紹了詳細(xì)Laravel5.5執(zhí)行表遷移命令出現(xiàn)表為空的解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Laravel 中使用 Vue.js 實(shí)現(xiàn)基于 Ajax 的表單提交錯(cuò)誤驗(yàn)證操作
這篇文章主要介紹了Laravel 中使用 Vue.js 實(shí)現(xiàn)基于 Ajax 的表單提交錯(cuò)誤驗(yàn)證功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06

