首页 > 开发 > PHP > 正文

Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解

2024-05-04 22:29:05
字体:
来源:转载
供稿:网友

本文实例讲述了Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法。分享给大家供大家参考,具体如下:

MVC结构中视图层和控制器的解耦,以及渲染。往往是重复或者冗余的工作。如果一个完善的框架,对MVC的使用,必定会对这些操作进行合理的设计。让开发者更专注内容而不是控制逻辑结构本身。在ZendFramework中,主要是通过动作助手ViewRenderer来完成这个操作的。ViewRenderer 自动的完成在控制器内建立视图对象并渲染视图的过程;

ViewRenderer

介绍

视图解析(ViewRenderer)助手为实现下列目标设计:

不需要在控制器内创建视图对象实例;视图对象将在控制器内自动注册。
根据当前的模块自动地设置视图脚本、助手、过滤器路径。指派当前的模块名为助手和过滤器类的类名前缀。
为所有分发的控制器和动作创建全局有效的视图对象。
允许开发人员为所有控制器设置默认的视图解析选项。
加入无需干预自动解析试图脚本的功能。
允许开发人员为视图基路径和视图脚本路径创建自己的规范。

Note: 如果手动执行_forward()、redirect、或者render时,不会发生自动解析。因为执行这些动作时,等于告诉ViewRenderer,你要自己确定输出结果。

Note: ViewRenderer助手默认启用。

你可以通过前端控制器的noViewRenderer方法、设定参数($front->setParam('noViewRenderer', true))或者从助手经纪人栈(helper broker stack)中移除助手(Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer'))等方式禁用该助手。

如希望在分发前端控制器前修改ViewRenderer设定,可采用下面的两种方法:

创建实例并注册自己的ViewRenderer对象,然后传入到助手经纪人。

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();$viewRenderer->setView($view)       ->setViewSuffix('php');Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

通过助手经纪人即时的初始化并/或获取ViewRenderer对象。

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');$viewRenderer->setView($view)       ->setViewSuffix('php');

API

大多数使用中,只需要简单的创建 ViewRenderer对象,然后传入到动作助手经纪人。创建实例并注册的最简单方式是使用助手经纪人的getStaticHelper()方法:

Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');

动作控制器第一次实例化时,会触发ViewRenderer创建一个视图对象。动作控制器每次实例化都会调用ViewRenderer的init()方法,设定动作控制器的视图属性,并以相对于当前模块的路径为参数调用addScriptPath()方法;调用时带有以当前模块命名的类前缀参数,该参数对为该模块定义的所有助手和过滤器类都有效。(this will be called with a class prefix named after the current module, effectively namespacing all helper and filter classes you define for the module. )

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表