繁体   English   中英

初始化前端控制器,这两者之间有什么区别

[英]Initializing the Front Controller, what's the difference between these two

我正在查看我过去两个月为Zend编写的一些代码,并且在初始化前端控制器时看到了一些不一致(因为我是初学者)。

我看到有时候我已经做到了

$frontController = Zend_Controller_Front::getInstance();

而其他时候我已经做到了

$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');

不知道我在想什么。 我想我可能正在跟随一些例子。 有人知道这两者之间是否有真正的区别?

一种是对Singleton对象的调用,该对象可以从任何地方获取。 另一个是对应用程序引导程序的调用,以检索称为“ FrontController”的资源。

从理论上讲,名为“ FrontController”的资源可以是分配给具有该名称的引导程序的任何内容,例如自定义的前端控制器实现,如果您不想使用Zend的话。

实际上,它们都检索Zend_Controller_Front实例。

Zend_Controller_Front::getInstance()

第一种方法是直接调用Zend_Controller_Front

$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');

第二种方法使用Zend_ApplicationZend_Application_Bootstrap_ResourceBootstrapper 初始化Zend_Application时,它将注册FrontController资源,然后使用引导文件中的$this->bootstrap调用对其进行初始化。

尽管后一种方法将同时需要Zend_Application和Zend_Controller,但第一种方法仅取决于Zend_Controller。

我认为这是两种相同的;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM