多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > ZendFramework > Zend Framework教程-Resources官方示例翻譯

Zend Framework教程-Resources官方示例翻譯

來源:程序員人生   發布時間:2014-02-14 01:53:14 閱讀次數:3696次

默認的引導類的基本結構如下:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{}
 

具體相應的配置文件:

; APPLICATION_PATH/configs/application.ini[production]autoloaderNamespaces[] = "My_"bootstrap.path = APPLICATION_PATH "/Bootstrap.php"bootstrap.class = "Bootstrap"pluginpaths.My_Bootstrap_Resource = "My/Bootstrap/Resource"resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" [testing : production][development : production]

Note:  命名空間的自動加載器
例子中使用了自定義的命名空間,我們需要通過配置文件注冊配置命名空間前綴,通過autoloaderNamespaces配置選項,其是一個數組。值是具體的命名空間前綴。

例如:

autoloaderNamespaces[] = "My_"


此外,為了確保自定義插件資源能夠被找到,需要注冊插件前綴路徑。通過pluginpaths配置選項,其是一個關聯數組,key表示資源插件的類路徑前綴,值是資源類的前綴的路徑格式。

例如:

pluginpaths.My_Bootstrap_Resource = "My/Bootstrap/Resource"


自定義初始化是有必要的,你有兩種方法。第一,你可以使用_init前綴方法;第二中方法可以定義bootstrap<resource>()方法。他們都可以接受配置數組進行相關配置。

如果資源方法指定了返回值,它會被存儲在引導類的容器中。這是非查有用的功能,不同的資源需要進行交互(例如一個資源注入到另一個中)時,可以用getResource() 方法來獲取這些值。

下面的例子展示了一個初始化請求對象的資源方法。可以使用依賴性跟蹤(它依賴前端控制器資源),獲取引導資源,并返回存儲在引導類的值。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{    protected function _initRequest()    {        // Ensure front controller instance is present, and fetch it        $this->bootstrap('FrontController');        $front = $this->getResource('FrontController');         // Initialize the request object        $request = new Zend_Controller_Request_Http();        $request->setBaseUrl('/foo');         // Add it to the front controller        $front->setRequest($request);         // Bootstrap will store this value in the 'request' key of its container        return $request;    }}

請注意,在這個例子中,需要調用bootstrap();來確保調用此方法之前前端控制器已經初始化。 調用會觸發另一個資源或者另一個類中的方法。

另一種選擇是使用資源插件。資源插件是執行特定的初始化的對象,具體規定如下:

Zend_Application 對象的實例化時

在引導對象初始化的時候  

明確地通過方法調用引導對象時

資源插件實現了Zend_Application_Resource_ResourceAbstract,Zend_Application_Resource_ResourceAbstract簡單的定義了,注入引導對象和配置選項,以及 init()方法。例如,一個自定義“View”:

class My_Bootstrap_Resource_View    extends Zend_Application_Resource_ResourceAbstract{    public function init()    {        $view = new Zend_View($this->getOptions());        Zend_Dojo::enableView($view);         $view->doctype('XHTML1_STRICT');        $view->headTitle()->setSeparator(' - ')->append('My Site');        $view->headMeta()->appendHttpEquiv('Content-Type',                                           'text/html; charset=utf-8');         $view->dojo()->setDjConfigOption('parseOnLoad', true)                     ->setLocalPath('/js/dojo/dojo.js')                     ->registerModulePath('../spindle', 'spindle')                     ->addStylesheetModule('spindle.themes.spindle')                     ->requireModule('spindle.main')                     ->disable();         $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(            'ViewRenderer'        );        $viewRenderer->setView($view);         return $view;    }}


你可以提供資源插件類的名稱,或一個插件加載器前綴路徑的組合和資源插件的短名稱(例如,“view”)使用資源插件:

$application = new Zend_Application(    APPLICATION_ENV,    array(        'resources' => array(            'My_Bootstrap_Resource_View' => array(), // full class name; OR            'view' => array(),                       // short name             'FrontController' => array(                'controllerDirectory' => APPLICATION_PATH . '/controllers',            ),        ),         // For short names, define plugin paths:        'pluginPaths = array(            'My_Bootstrap_Resource' => 'My/Bootstrap/Resource',        )    ));

通過訪問父引導類,資源插件可以調用其他資源和初始化函數:

class My_Bootstrap_Resource_Layout    extends Zend_Application_Resource_ResourceAbstract{    public function init()    {        // ensure view is initialized...        $this->getBootstrap()->bootstrap('view');         // Get view object:        $view = $this->getBootstrap()->getResource('view');         // ...    }}

在正常使用中,您可以實例化應用程序,引導,并運行它:

$application = new Zend_Application(...);$application->bootstrap()            ->run();


通常,您可能需要初始化特定的資源:

$application = new Zend_Application(...);$application->getBootstrap()->bootstrap('db'); $service = new Zend_XmlRpc_Server();$service->setClass('Foo');  // uses database...echo $service->handle();


 你可以重載 bootstrap() 調用內部方法或資源:



$application = new Zend_Application(...);$application->getBootstrap()->bootstrapDb();



相關原文網址

http://framework.zend.com/manual/en/zend.application.html
http://framework.zend.com/manual/en/zend.application.examples.html
http://framework.zend.com/manual/en/zend.application.core-functionality.html
http://framework.zend.com/manual/en/zend.application.available-resources.html
http://aaronsaray.com/blog/2011/05/24/zend-framework-bootstrap-vs-front-controller-plugin/
http://blog.straylightrun.net/2011/04/13/zend-framework-bootstrap-php-or-they-hung-him-up-by-his-bootstraps/


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲午夜国产精品无卡 | 欧美jjzz | 免费看w片的网站在线看 | 欧式午夜理伦三级在线观看 | 国产精品99爱免费视频 | 亚洲综合网在线 | 国产午夜a理论毛片在线影院 | 97欧美在线看欧美视频免费 | 欧美一级在线 | japanxxxx日本黑人| 亚洲五月七月丁香缴情 | 日韩一区国产一级 | free性丰满hd性欧美厨房 | 成人午夜精品久久久久久久小说 | 在线视频一区二区三区 | 老司机成人在线观看 | 日本欧美一二三区色视频 | 亚洲欧美日韩网站 | 日本欧美一区二区三区 | 日韩高清专区 | 泰国一级毛片aaa下面毛多 | 日本中文字幕一区 | 女人18毛片特级一级免费视频 | 手机在线中文字幕乱码免费 | 亚洲精品www | 亚洲欧美一区二区三区久久 | 国产一区2区3区 | 手机福利视频 | 手机福利在线 | 在线观看精品国产福利片100 | 国产精品亚洲午夜一区二区三区 | 2022国产福利在线观看 | 欧美性free hd | 欧美视频自拍偷拍 | 欧美jizz18性欧美 | 久久精品久| 黄色www网站| freexxx性亚洲xxxx | 亚洲三级视频 | 亚洲无线乱码高清在线观看一区 | 亚洲小说另类 |