Zend Framework教程之Resource Autoloading用法執行個體,zendautoloading_PHP教程

來源:互聯網
上載者:User

Zend Framework教程之Resource Autoloading用法執行個體,zendautoloading


本文執行個體講述了Zend Framework中Resource Autoloading用法。分享給大家供大家參考,具體如下:

通常,在開發應用程式中,可能類檔案名稱不能按照標準Zend Framework的建議定義的,這意味著你的類檔案不能被自動載入器發現。Zend_Loader_Autoloader_Resource提供瞭解決方案。

資源僅僅是一個名稱對應一個組件的命名空間(追加到自動載入器的命名空間)和路徑(相對的自動載入器的基本路徑),例如可以這樣:

$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

建立資源裝載器:

$loader = new Zend_Loader_Autoloader_Resource(array(  'basePath' => 'path/to/some/resources/',  'namespace' => 'Foo',));

定義資源類型

Zend_Loader_Autoloader_Resourse::addResourceType()有三個參數:資源名稱,指定的資源路徑的相對資源路徑名, 資源類型組件首碼。

在上面的樹,我們有三種資源類型: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');

也可以在建構函式中指定

$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”,模組預設情況下,通常有一些資源類型,Zend Framework提供了一個模組的標準目錄布局。在這種範式中,資源自動載入器非常有用,他們是預設啟用的。

模組的基本目錄結構:


configs/
application.ini
controllers/
helpers/
forms/
layouts/
filters/
helpers/
scripts/
models/
services/
views/
filters/
helpers/
scripts/
Bootstrap.php

你可以擴充Zend_Application_Module_Bootstrap建立一個模組引導類 Bootstrap.php,具體的資源載入和預設的資源載入使用類似。

更多關於zend相關內容感興趣的讀者可查看本站專題:《Zend FrameWork架構入門教程》、《php優秀開發架構總結》、《Yii架構入門及常用技巧總結》、《ThinkPHP入門教程》、《php物件導向程式設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程式設計有所協助。

您可能感興趣的文章:

  • Zend Framework教程之MVC架構的Controller用法分析
  • Zend Framework教程之路由功能Zend_Controller_Router詳解
  • Zend Framework教程之Zend_Controller_Plugin外掛程式用法詳解
  • Zend Framework教程之響應對象的封裝Zend_Controller_Response執行個體詳解
  • Zend Framework教程之請求對象的封裝Zend_Controller_Request執行個體詳解
  • Zend Framework教程之動作的基類Zend_Controller_Action詳解
  • Zend Framework教程之分發器Zend_Controller_Dispatcher用法詳解
  • Zend Framework教程之前端控制器Zend_Controller_Front用法詳解
  • Zend Framework教程之視圖組件Zend_View用法詳解
  • Zend Framework教程之模型Model用法簡單一實例
  • Zend Framework教程之Autoloading用法詳解

http://www.bkjia.com/PHPjc/1106885.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1106885.htmlTechArticleZend Framework教程之Resource Autoloading用法執行個體,zendautoloading 本文執行個體講述了Zend Framework中Resource Autoloading用法。分享給大家供大家參考,具體如...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.