溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Zend Framework中Resource Autoloading如何使用

發(fā)布時(shí)間:2021-06-23 15:33:47 來源:億速云 閱讀:103 作者:Leah 欄目:開發(fā)技術(shù)

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)知識。

向AI問一下細(xì)節(jié)

免責(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)容。

AI