我正在查看我在过去两个月里为Zend编写的一些代码,并且我在初始化前端控制器时看到了一些不一致(因为我是初学者)。
我看到有时候我已经完成了这个
$frontController = Zend_Controller_Front::getInstance();
其他时候我已经完成了这个
$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');
不确定我在想什么。我想我可能会关注一些例子。谁知道这两者之间是否有任何真正的区别?
答案 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)
我认为它是两种相同的类型; - )