![](/img/trans.png)
[英]What is the difference between this two methods for initializing a PHP class?
[英]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_Application和Zend_Application_Bootstrap_ResourceBootstrapper 。 初始化Zend_Application时,它将注册FrontController资源,然后使用引导文件中的$this->bootstrap
调用对其进行初始化。
尽管后一种方法将同时需要Zend_Application和Zend_Controller,但第一种方法仅取决于Zend_Controller。
我认为这是两种相同的;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.