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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
PHP EOT定界符的使用详解
Sep 30 PHP
php中日期加减法运算实现代码
Dec 08 PHP
php实现mysql事务处理的方法
Dec 25 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
Jun 28 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
js实现拖拽效果
2015/02/12 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
详解JS数值Number类型
2018/02/07 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
Python出现segfault错误解决方法
2016/04/16 Python
详解Django配置优化方法
2019/11/18 Python
彻底解决Python包下载慢问题
2020/11/15 Python
重构Python代码的六个实例
2020/11/25 Python
校园奶茶店创业计划书
2014/01/23 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
教师党员整改措施
2014/10/24 职场文书
领导新年致辞2016
2015/07/29 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
使用Pytorch训练two-head网络的操作
2021/05/28 Python
Python中的变量与常量
2021/11/11 Python