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
Access数据库导入Mysql的方法之一
Oct 09 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
php数组指针操作详解
Feb 14 PHP
万能的php分页类
Jul 06 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
laravel config文件配置全局变量的例子
Oct 13 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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图片添加水印例子
2016/07/20 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
webpack将js打包后的map文件详解
2018/02/22 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
es6数值的扩展方法
2019/03/11 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
PHP面试题大全
2015/10/16 面试题
高中生毕业自我鉴定
2013/10/10 职场文书
课程改革实施方案
2014/03/16 职场文书
升旗仪式主持词
2014/03/19 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers