1

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

我看到有时我已经这样做了

$frontController = Zend_Controller_Front::getInstance();

其他时候我已经这样做了

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

不知道我在想什么。我想我可能正在遵循示例。有谁知道这两者之间是否有任何真正的区别?

4

3 回答 3

4

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

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

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

于 2010-11-09T13:41:15.273 回答
2
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。

于 2010-11-09T13:40:54.287 回答
1

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

于 2010-11-09T13:32:51.283 回答