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简介
Apr 28 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
Laravel框架表单验证详解
Sep 04 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
详解Laravel服务容器的绑定与解析
Nov 05 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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写的serv-u的web申请账号的程序
2006/10/09 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php二维数组排序详解
2013/11/06 PHP
php获取字段名示例分享
2014/03/03 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
jQuery 操作XML入门
2008/12/25 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
简单实现python数独游戏
2018/03/30 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
优秀交警事迹材料
2014/01/26 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
九九重阳节致辞
2015/07/31 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
《假如》教学反思
2016/02/17 职场文书