Php zend framework中存储的实例化对象在哪里?
我是Zend框架的初学者,我发现很难理解他们的文档。 我使用的唯一PHP框架是CodeIgniter 我在利用图书馆时习惯了这种方法:Php zend framework中存储的实例化对象在哪里?,php,zend-framework,Php,Zend Framework,我是Zend框架的初学者,我发现很难理解他们的文档。 我使用的唯一PHP框架是CodeIgniter 我在利用图书馆时习惯了这种方法: //load the My_Library class and assign the object to $this->myLibrary property $this->load->library('my_Library'); //CodeIgniter way public function index() { $this->
//load the My_Library class and assign the object to $this->myLibrary property
$this->load->library('my_Library'); //CodeIgniter way
public function index()
{
$this->my_Library->method(); //make use of the methods in the loaded library
}
到目前为止,我正在了解这段代码在zend中是如何工作的,比如在bootstrap类中:
protected function _initSetDoctype()
{
$doctypeHelper = new Zend_View_Helper_Doctype();
$doctypeHelper->doctype('XHTML1_STRICT');
}
在layout.phtml文件中,我们可以放置:
<?php echo $this->doctype() ?>
我的问题是:因为我实例化了一个新的Zend_View_Helper_Doctype()代码>
采埃孚如何分配$this->doctype
并使其在视图中可用?
是否存在某种类型的存储,这些值在其中更新视图对象
我试图了解zend中的流是如何工作的,以便更好地了解如何利用它的资源。对不起,我的英语很难理解
多谢各位 通常ZF使用Zend_注册表来存储它创建的对象的实例。您提供的特定示例(即_initSetDoctype)有效,因为Zend\u View\u Helper\u Doctype
的构造函数将检查它是否已存储在Zend\u注册表中。因此,在引导过程中,new Zend\u View\u Helper\u Doctype()
将Doctype信息存储在注册表中(因为它是第一次创建的),而不是在layout.phtml中,将检索注册表中存储的值
其他ZF资源(或对象),如Zend_视图、Zend_布局,也通过注册表进行存储和访问
当然,您也可以将自己的对象(或任何对象)存储在注册表中。这样,您将能够在ZF应用程序的每个位置访问它们 您可以自己回答这个问题,只需启动调试器!投票结束并不是一个真正的问题。一旦你了解了框架,文档就没那么糟糕了,哈哈!开玩笑的是,他们在将ZF作为独立对象和MVC模式分离时做得很差。有些示例完全缺乏如何在MVC中正确实现类的信息,而其他示例仅在MVC模式中工作。我明白了!我已经仔细研究这个框架好几个小时了。与CodeIgniter相比,它真的不同。非常感谢你!