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入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php二维数组排序详解
Nov 06 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP开发框架Laravel数据库操作方法总结
Sep 03 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
PHP简单日历实现方法
Jul 20 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 PHP
php 原生分页
Apr 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
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python比较两个列表大小的方法
2015/07/11 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
师范大学音乐表演专业求职信
2013/10/23 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
《日月潭》教学反思
2016/02/20 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
mysql事务隔离级别详情
2021/10/24 MySQL
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL