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
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
Sep 30 PHP
PHP strtotime函数详解
Dec 18 PHP
php eval函数用法总结
Oct 31 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
PHP中的Session对象如何使用
Sep 25 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP实现的杨辉三角求解算法分析
Mar 11 PHP
php封装的page分页类完整实例代码
Feb 01 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
数据库查询记录php 多行多列显示
2009/08/15 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
Java分治归并排序算法实例详解
2017/12/12 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python文件写入write()的操作
2019/05/14 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
代理商会议邀请函
2014/01/27 职场文书
《学会待客》教学反思
2014/02/22 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
环保专项行动方案
2014/05/12 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
实习单位推荐信
2015/03/27 职场文书
同事打架检讨书
2015/05/06 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书