我是 Zend Framework 的初学者,我发现很难理解他们的文档。 我使用的唯一 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->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();
ZF 如何分配 $this->doctype
并使其在 View 中可用?
这些值更新 View 对象是否存在某种存储?
我正在尝试找出流程在 zend 中的工作方式,以便我可以更好地了解如何利用其资源。如果我的英语很难理解,请原谅我@_@ 非常感谢!
最佳答案
通常 ZF 使用 Zend_Registry 来存储它创建的对象的实例。您提供的特定示例(即 _initSetDoctype)有效,因为 Zend_View_Helper_Doctype
的构造函数将检查它是否已存储在 Zend_Registry 中。因此,在您的 Bootstrap 中,new Zend_View_Helper_Doctype()
将在注册表中存储文档类型信息(因为它是第一次创建),而不是在 layout.phtml 中,注册表中存储的值将被检索。
其他 ZF 资源(或对象),如 Zend_View、Zend_Layout,也通过注册表存储和访问。
当然,您也可以将自己的对象(或其他对象)存储在注册表中。这样,您将能够在 ZF 应用程序的每个位置访问它们。
关于php - zend framework 中存储的实例化对象在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722098/