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 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
用PHP实现维护文件代码
Jun 14 PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
Yii2语言国际化的配置教程
Aug 19 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 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学习之PHP运算符
2006/10/09 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
js 处理URL实用技巧
2010/11/23 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
微信小程序之蓝牙的链接
2017/09/26 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Python3解释器知识点总结
2019/02/19 Python
Python中捕获键盘的方式详解
2019/03/28 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
大学入学感言
2015/08/01 职场文书