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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
php 301转向实现代码
Sep 18 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
PHP strripos函数用法总结
Feb 11 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 PHP
PHP中->和=>的意思
Mar 31 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/02/24 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php一个找二层目录的小东东
2012/08/02 PHP
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
Underscore源码分析
2015/12/30 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
详解Python中的序列化与反序列化的使用
2015/06/30 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
Python3 读取Word文件方式
2020/02/13 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
css3 transform属性详解
2014/09/30 HTML / CSS
降消项目实施方案
2014/03/30 职场文书
补充协议书范本
2014/04/23 职场文书
施工安全生产承诺书
2014/05/23 职场文书
元旦趣味活动方案
2014/08/22 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
考勤制度通知
2015/04/25 职场文书
预备党员入党感想
2015/08/10 职场文书
初中语文教学研修日志
2015/11/13 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang
MySQL 语句执行顺序举例解析
2022/06/05 MySQL
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技