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数组应该有多大的分析
Jul 30 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
学习php开源项目的源码指南
Dec 21 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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高自定义性安全验证码代码
2011/11/27 PHP
php网页病毒清除类
2014/12/08 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
php DES加密算法实例分析
2019/09/18 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
python实现划词翻译
2020/04/23 Python
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
党员党性分析材料
2014/02/17 职场文书
大三学习计划书范文
2014/05/02 职场文书
小学亲子活动总结
2014/07/01 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
python实现简单的井字棋
2021/05/26 Python