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 相关文章推荐
让你的网站首页自动选择语言转跳
Dec 06 PHP
PHP 翻页 实例代码
Aug 07 PHP
Memcache 在PHP中的使用技巧
Feb 08 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
关于svn冲突的解决方法
Jun 21 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 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
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
python线程的几种创建方式详解
2019/08/29 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
授权委托书样本
2014/04/03 职场文书
租房协议书怎么写
2014/04/10 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
护士业务学习心得体会
2016/01/25 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python