当前位置:  开发笔记 > 编程语言 > 正文

Zend框架布局

如何解决《Zend框架布局》经验,为你挑选了1个好方法。

我从Zend Framework开始,我想了解Bootstrap文件.我已经知道所有_init方法都是默认执行的,但这对我来说似乎很困惑.无论如何,这不是我想问的问题.

A围绕着这个$this->bootstrap('layout');动作,我不确定我是否理解这一点.这是application.ini文件中的resource.layout变量吗?我想深入了解bootstrap过程.

我问你一步一步的解释. 提前致谢!

所以这是我的bootstrap文件:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $moduleLoader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath' => APPLICATION_PATH
        ));
        return $moduleLoader;
    }

    function _initViewHelpers()
    {
        $this->bootstrap('layout');

        $layout = $this->getResource('layout');
        $view = $layout->getView();
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
        $view->headTitle()->setSeparator(' - ');
        $view->headTitle('Zend Framework Tutorial');
    }
}

takeshin.. 6

来自的线 application.ini

resources.layout[] = 

相当于:

_initLayout() {}

Bootstrap.php

它们都是初始化新对象,并且此对象设置为bootstrapparam,它是某些应用程序资源的容器(_init方法返回的值).

逐个执行,因此为了确保在当前资源之前初始化一个资源,您可以使用以下命令强制执行以下命令:

_initSomeResource() {
    $this->bootstrap('otherResource');
    // ..
    return $someValue; 
}

_initOtherResource() {
    // .. 
}

因此,实例化资源的顺序是:

    otherResource

    someResource

现在,您也可以使用:

$bootstrap->getParam('someResource'); // returns $someValue

请注意,Circular Dependency当您尝试在每个之前执行彼此时,您可能会遇到错误.

您可以使用_init所需的方法,但为了使它们可重用,您可以将它们分离到自己的类,实现Zend_Application_Resource_Abstract类.

有一些现成的应用程序资源,您可以在Zend/Application/Resource目录中找到它们.这些是您所引用的资源application.ini,即:

resources.view.encoding = "utf-8" ; in application.ini
Zend/Application/Resource/View.php (path to the resource class)
Zend_Application_Resource_View::setEncoding('UTF-8'); // equivalent pseudocode

希望现在更清楚了.



1> takeshin..:

来自的线 application.ini

resources.layout[] = 

相当于:

_initLayout() {}

Bootstrap.php

它们都是初始化新对象,并且此对象设置为bootstrapparam,它是某些应用程序资源的容器(_init方法返回的值).

逐个执行,因此为了确保在当前资源之前初始化一个资源,您可以使用以下命令强制执行以下命令:

_initSomeResource() {
    $this->bootstrap('otherResource');
    // ..
    return $someValue; 
}

_initOtherResource() {
    // .. 
}

因此,实例化资源的顺序是:

    otherResource

    someResource

现在,您也可以使用:

$bootstrap->getParam('someResource'); // returns $someValue

请注意,Circular Dependency当您尝试在每个之前执行彼此时,您可能会遇到错误.

您可以使用_init所需的方法,但为了使它们可重用,您可以将它们分离到自己的类,实现Zend_Application_Resource_Abstract类.

有一些现成的应用程序资源,您可以在Zend/Application/Resource目录中找到它们.这些是您所引用的资源application.ini,即:

resources.view.encoding = "utf-8" ; in application.ini
Zend/Application/Resource/View.php (path to the resource class)
Zend_Application_Resource_View::setEncoding('UTF-8'); // equivalent pseudocode

希望现在更清楚了.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有