Zend_Layout 配置选项 Zend_Layout有多种配置选项。这些都可以用调用适当的访问器来设置,传递数组或Zend_Config对象给构造器或startMvc(),传递选项数组给setOptions(),或传递Zend_Config对象给to setConfig() layout:被使用的布局。使用当前变形器来解析提供给合适的布局视图脚本的名称。缺省地,这个值是'layout'并解析为'layout.phtml'。访问器是setLayout()getLayout() layoutPath: 布局视图脚本的基本路径。访问器是setLayoutPath()getLayoutPath() contentKey: 用于缺省内容(和MVC一起使用)的布局变量。缺省值是'content'。访问器是setContentKey()getContentKey() mvcSuccessfulActionOnly: 当使用MVC,当动作抛出一个异常并且这个标志为true,布局将不被解析(这是为了防止当ErrorHandler plugin 在使用时,布局被双重解析)。缺省地,这个标记是true。访问器是setMvcSuccessfulActionOnly()getMvcSuccessfulActionOnly() view: 当解析时使用的视图对象。当和MVC一起使用时,如果没有视图对象被显式传递,Zend_Layout 将尝试使用用the ViewRenderer 注册的视图对象。访问器是setView()getView() helperClass: 当和MVC组件一起使用Zend_Layout 时的动作助手。 缺省是 Zend_Layout_Controller_Action_Helper_Layout。访问器是 setHelperClass()getHelperClass() pluginClass: 当和MVC组件一起使用Zend_Layout 时的前端控制器插件类。缺省是 Zend_Layout_Controller_Plugin_Layout。访问器是 setPluginClass()getPluginClass() inflector: 当解析布局名给布局视图脚本路径时的变形器;参见 Zend_Layout 变形器文档有更多细节 。访问器是 setInflector()getInflector() 助手类和插件类必须传递给startMvc() 为了helperClasspluginClass设置有效,它们必须作为选项传递给startMvc();如果以后设置,它们就没有影响。 范例 下面的例子假定使用$options数组和$config对象: 'foo', 'layoutPath' => '/path/to/layouts', 'contentKey' => 'CONTENT', // ignored when MVC not used ); ?>]]> ]]> 传递选项给构造器或startMvc() 为了配置Zend_Layout实例,构造器和startMvc() 静态方法都可以接受选项数组或带有选项的Zend_Config 对象。 首先,看一下传递数组: ]]> 现在使用配置对象: ]]> 基本上,这是定制Zend_Layout实例的最简单的方法。 使用setOption() 和 setConfig() 有时候在Zend_Layout 对象初始化以后才需要配置;setOptions()setConfig()让你快速而起容易地来做: setOptions($options); // Using a Zend_Config object: $layout->setConfig($options); ?>]]> 然而要注意特定的选项,如pluginClasshelperClass,当用这个方法传递,将没有效果;它们需要传递给构造器或者startMvc() 方法。 使用访问器 最后,通过访问器来配置Zend_Layout 实例。所有的访问器实现一个流畅的接口,意味这它们的调用可能被链接: setLayout('foo') ->setLayoutPath('/path/to/layouts') ->setContentKey('CONTENT'); ?>]]>