Zend_Layout有两个基本用例:带有Zend Framework MVC和不带。
Zend_Layout placeholder 注册,可以通过占位符助手或者通过布局助手从布局对象的对象属性里获取。
Zend_Layout使用Zend_View来解析,你也可以使用任何视图助手注册,并也可以访问任何先前分配的视图变量。特别有用的是各种各样的占位符助手,因为它允许为如 <head>节(section)、导航(navigation)等区域获取内容:
Zend_Controller通过前端控制器插件 和 动作控制器助手 提供了一组丰富的扩展函数。Zend_View 也有助手。当和(Zend Framework)MVC组件一起使用时,Zend_Layout 利用这些多种扩展点。
Zend_Layout::startMvc()创建一个带有任何你提供给它的可选配置的Zend_Layout的实例。接着它注册一个前端控制器插件,一旦派遣循环完成,这个插件就解析带有任何应用程序内容的布局,并且注册一个动作助手允许从动作控制器来访问布局对象。另外,可以任何时候用布局视图助手从视图脚本抓取布局实例。
startMvc() 可以带一个可选的数组或Zend_Config 对象来定制实例;这些选项详见layout视图助手来访问布局对象。这个视图助手和其它的有细微的区别:不带参数,返回一个对象而不是一个字符串值。这允许在布局对象里立即调用方法:
getMvcInstance() 静态方法获取和MVC一起注册的Zend_Layout的实例:
Zend_Layout 的前端控制器插件有一个除解析布局外的重要特征:它从响应对象获取所有被命名的段(segments)并分配它们为布局变量,分配‘default’段给变量‘content’。这允许访问应用程序内容和在视图脚本里解析。
FooController::indexAction() ,它解析一些内容到缺省的响应段,并接着转发给NavController::menuAction() ,它解析内容给'nav'响应段。最后,转发给CommentController::fetchAction() 并取得一些注释,但是也解析那些给缺省响应段(追加内容给那个段)。视图脚本可以接着分别解析: