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 数组二分法查找函数代码
Feb 16 PHP
php 高性能书写
Dec 11 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
php生成图形(Libchart)实例
Nov 06 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
PHP临时文件的安全性分析
Jul 04 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 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/10/23 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
this[] 指的是什么内容 讨论
2007/03/24 Javascript
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
解析js如何获取css样式
2016/12/11 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
Python对数据库操作
2016/03/28 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Python如何对齐字符串
2020/07/30 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
工程总经理工作职责
2013/12/09 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
见习期自我鉴定
2014/01/31 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书