PHP.MVC的模板标签系统(一)


Posted in PHP onSeptember 05, 2006

    PHP.MVC的模板标签系统(PhpMVC_Tags)现在提供了3种类型的标签:包含指令,声明和表达式.
    包含指令能让我们将内容分隔为许多模块,比如:页眉,页脚或者内容.包含的页面可以是HTML,或者其他标签模板页.据个例子,下面的包含指令能用来包含一个页眉:
    <@ include 'pageHeader.ssp' @>
    声明允许我们在模板种声明一个页面级别的变量,或者甚至其他包含页面.一个声明看起来像以下代码:
    <@ salesAreaID = "Central District" @>
    表达式标签允许我们在模板页中执行表达式.表达式的结果将被包含进模板页.以下表达式将被用来显示一个简单的字符串(salesAreaID),也可以找回框架配置类的属性:
    <@ =salesAreaID @>
    <@ =viewConfig.getAreaManager @>
    PHP.MVC beta 0.4.0引进了一个新配置类叫做ViewResourcesConfig.这个类能被用来定义能被用在VIEW资源(模板)中的全局参数,并且也能去配置模板标签系统,它将在下面显示.phpmvc-config.xml配置文件中的view-resources元素在下面的显示:
    <view-resources
       appTitle    = "Flash Jacks' Sleek Tab Site"
       copyright   = "Copyright @ 2010 Flash Jack. All rights reserved."
       contactInfo = "flash.jack@jackshost.com"
       processTags = "true"
       compileAll  = "true"
       className   = "MyViewResourcesConfig">

       <!-- We can set some properties on our custom ViewResourcesConfig class        -->
       <set-property property="areaManager" value="Joe J. Blogs Esq."/>
    </view-resources>
    模板页面处理使用模板标签系统能被<view-resources>结点来控制.首先我们能定义是模板标签系统编译所有模板页面还是只编译修改过的.其次,我们能定义模板标签系统是否真的要处理标签页面,处理标签页面在应用程序配置当中和配置之后很有用.下面单元显示的<view-resources>是将compileAll和processTags属性设置为真(总是处理标签页并且处理所有标签页):
    <view-resources
   ...
   processTags = "true"
   compileAll  = "true"
   ...
    </view-resources>

Action Dispatcher

    PHP.MVC版本beta 0.4.0以上ActionDispatcher类用来负责使FormBean,Errors,Value(商务数据)和ViewResourcesConfig对象在我们的VIEW(模板)中可以使用.
    在检查模板标签系统之前我们应该快速的看一下ActionObjects和ViewResourcesConfig类,当在使用标准的ActionDispatcher时.

ActionObjects

    ActionDispatcher使一些对象在我们所使用的模板页面中的应用程序VIEW资源可用.3种标准的ActionObjects为:FormBean,Errors,和Value(商务数据)对象.
    一下表格显示了在FormAction和Action类中如何使用FormBean,Errors和Value对象:
    Saving ActionObjects in ActionForm Classes 
 ActionErrors  $this->saveErrors($request, $actionErrors) 
 FormBeans  $this->saveFormBean($request, $this) 
 ValueObjects  $this->saveValueObject($request, $valueObject) 

    Saving ActionObjects in Action Classes 
 ActionErrors  $this->saveErrors($request, $actionErrors) 
 FormBeans  $this->saveFormBean($request, $form) 
 ValueObjects  $this->saveValueObject($request, $valueObject) 

    Retrieving ActionObjects in View Resources (Templates) 
 ActionErrors  $errors->getItemString('logon_username_reqd') 
 FormBeans  $form->username 
 ValueObjects  $data->salesNorth 

    一个ActionObject将被初始化为NULL如果对象没有在之前被创建和保存.要想得到ActionObjects的详细信息请看这里:http://www.phpmvc.net/docs/guides/guidesIdx.php?doc=action-objects

View Resources

    ActionDispatcher也能暴露ViewResourcesConfig对象到我们的模板页面中.ViewResourcesConfig对象被phpmvc-config.xml配置文件中的<view-resources>元素所配置的.如果ViewResourcesConfig对象还没有被配置,那么一个新的实例将使用默认的ViewResourcesConfig类的属性.
    下面这段代码显示了使用模板标签系统的表达式在我们的HTML页眉模板中如何访问ViewResourcesConfig属性:
    <!-- Page Header -->
    <span>
 <@ =viewConfig.getAppTitle @>
    </span>

配置Action Dispatcher

    ActionDispatcher是默认的PHP.MVC(在beta 0.4.0以上版本)Dispatcher类.这个Action Dispatcher被包含于框架将默认被使用,除非我们定义了一个类来替代Dispatcher类.在下一节中我们将看到怎样配置我们的应用程序来使用一个替代类--TagActionDispatcher类.

PHP 相关文章推荐
PHP中创建并处理图象
Oct 09 PHP
多数据表共用一个页的新闻发布
Oct 09 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php内存缓存实现方法
Jan 24 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 #PHP
Windows下PHP5和Apache的安装与配置
Sep 05 #PHP
玩转图像函数库―常见图形操作
Sep 03 #PHP
生成静态页面的PHP类
Jul 15 #PHP
删除无限级目录与文件代码共享
Jul 12 #PHP
PHP截取中文字符串的问题
Jul 12 #PHP
最令PHP初学者头痛的十四个问题
Jul 12 #PHP
You might like
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
初步探究Python程序的执行原理
2015/04/11 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
css3进行截取替代js的substring
2013/09/02 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
学校先进集体事迹材料
2014/05/31 职场文书
六一儿童节致辞
2015/07/31 职场文书
升学宴祝酒词
2015/08/11 职场文书
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers