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

时间:2010-11-09 13:09:19

标签: php zend-framework bootstrapping

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

我看到有时候我已经完成了这个

$frontController = Zend_Controller_Front::getInstance();

其他时候我已经完成了这个

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

不确定我在想什么。我想我可能会关注一些例子。谁知道这两者之间是否有任何真正的区别?

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

Zend_Controller_Front::getInstance()

第一种方法是直接调用 Zend_Controller_Front

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

第二种方法使用 Zend_Application Zend_Application_Bootstrap_ResourceBootstrapper 。初始化Zend_Application时,它会注册 FrontController 资源,然后在引导程序文件中使用$this->bootstrap调用进行初始化。

虽然后一种方法需要Zend_Application和Zend_Controller,但第一种方法只依赖于Zend_Controller。

答案 2 :(得分:1)

我认为它是两种相同的类型; - )