PHP.MVC的模板标签系统(五)


Posted in PHP onSeptember 05, 2006

建立模板标签系统应用程序

    建立模板标签系统应用程序只需几个步骤.
    注意:以下步骤假设使用了新的SleeK例子应用程序(这个例子可以在www.phpmvc.net上找到).

修改应用程序的boot.ini文件

    应用程序的boot.ini文件包含需要得到PHP.MVC框架的信息.boot.ini文件通常位于应用程序的"WEB-INF"目录下.为了设置应用程序使用模板标签类,我们需要在boot.ini文件中定义一些属性.

TagActionDispatcher类

    TagActionDispatcher是ActionDispatcher类的标准实现.为了让框架能读取TagActionDispatcher类,我们为变量$appServerRootDir设置值为'TagActionDispatcher':
// Setup the application specific ActionDispatcher (RequestDispatcher)
 $actionDispatcher = 'TagActionDispatcher';

模板标签系统库根目录

    我们也需要设置路径指向我们的PHP.MVC库(需要文件系统的绝对路径):
// Set php.MVC library root directory (no trailing slash).
 $appServerRootDir = 'C:\WWW\phpmvc-base';

可选设置

    应用程序定时器可以使用$timerRun属性来设置开或关:
// Timer reporting. 1=on, 0=off
 $timerRun = 1;
    还可以指导框架总是(强制)编译应用程序phpmvc-config.xml配置类(最好用在开发阶段,因为会比较慢),我们使用:
// The application XML configuration data set:
  $appXmlCfgs = array();
  $appXmlCfgs['config'] = array('name'=>'phpmvc-config.xml', 'fc'=>True);
    或者仅在phpmvc-config.xml文件被修改的时候重新编译应用程序配置文件(在开发完成后使用此项设置,速度快),我们使用:
// The application XML configuration data set:
  $appXmlCfgs = array();
  $appXmlCfgs['config'] = array('name'=>'phpmvc-config.xml', 'fc'=>False);

设置应用程序模板目录

    当为模板标签应用程序设置模板目录时,我们需要去创建一个目录(和子目录),放置我们的应用程序模板文件.这个目录必须被命名为在View资源配置类的$tplDir属性所定义的值,默认是'./WEB-INF/tpl'.比如:例子应用程序有一个模板目录结构设置像这样:
- PhpMVC-Tags
     Index.html
     Main.php
     WEB-INF
        tpl
           pageFooter.ssp
           pageHeader.ssp
           salePageBody.ssp
           sale
              pageContent.ssp
    我们也需要去创建目录放置编译的页面.这个目录必须被命名为在View资源配置类的$tplDirC属性所定义的值.默认是'./WEB-INF/tpl_C'.例子应用程序有一个模板目录结构设置像这样:
PhpMVC-Tags
    Index.html
    Main.php
    WEB-INF
       tpl
          ...
          sale
             ...
          tpl_C
             pageFooter.sspC
             pageHeader.sspC
             salePageBody.sspC
             sale
                pageContent.sspC
    注意我们也需要在'./WEB-INF/tpl_C'下创建sale目录.

设置PHP.MVC库的路径和包含

    检查以下路径设置已经被定义在GlobalPaths.php和globalPrepend.php文件在你的框架安装目录下的"/WEB-INF"目录下:
GlobalPaths.php
------------------------------------------------
 $appDirs[] = 'WEB-INF/lib/phpmvc_tags';

globalPrepend.php
------------------------------------------------
 include_once 'PhpMVC_Tags.php';
    如果他们没有在添加到路径里,那么就定义这些变量.

安装PHP.MVC库

    下载最新版的PHP.MVC库:http://www.phpmvc.net/download/cvsIdx.php?doc=cvs-snaps
    解压库文档到一个目录.修改上面所描述过的路径设置和包含设置.

运行例子应用程序

    下载例子应用程序.完整的例子代码文件和这个向导都能在这里下载:http://www.phpmvc.net/download/rel/phpmvc-tags-v1.0.zip
    解压到web服务器目录中.可能像这样:C:/WWW/PhpMVC-Tags
    修改应用程序和框架设置.
    为了测试例子程序,需要浏览器例子程序的首页:http://localhost/PhpMVC-Tags/Index.html

附录A:ViewResources配置类

    ViewResourcesConfig类表现了<view-resource>元素的配置信息.
    下表列出了ViewResourcesConfig类的属性,条目描述和默认值:   

Name  Description  Default Value
 $appTitle    The application title    'My Web Application'
 $appVersion    The application version    '1.0'
 $copyright    The copyright notice    'Copyright C YYYY My Name. All rights reserved.'
 $contactInfo    The contact information  'webmaster@myhost.com'
 $processTags  Do we run the template engine processor (boolean)   False
 $compileAll  Force compile pages (boolean)  False
 $tagL  The left tag identifier     '
 $tagR  The right tag identifier    '@>'
 $tplDir   The view resource templates directory   './WEB-INF/tpl'
 $tplDirC    The compiled templates directory    './WEB-INF/tpl_C'
  $extC  The compiled file notation. Eg: "pageContent.ssp[C]"   'C'
 $maxFileLength    The maximum size of the template files allowed, in bytes (integer)    250000
  $tagFlagStr    Indicates tag template file(s) to be pre-processed. Eg: "myPage.ssp"  '.ssp'
  $tagFlagCnt    The number of trailing filename characters to sample (".ssp" = -4)   -4
PHP 相关文章推荐
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
php实现文件下载代码分享
Aug 19 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
php获取客户端IP及URL的方法示例
Feb 03 PHP
Yii框架连表查询操作示例
Sep 06 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 PHP
PHP.MVC的模板标签系统(四)
Sep 05 #PHP
PHP.MVC的模板标签系统(三)
Sep 05 #PHP
PHP.MVC的模板标签系统(二)
Sep 05 #PHP
PHP.MVC的模板标签系统(一)
Sep 05 #PHP
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 #PHP
Windows下PHP5和Apache的安装与配置
Sep 05 #PHP
玩转图像函数库―常见图形操作
Sep 03 #PHP
You might like
PHP 批量删除 sql语句
2009/06/05 PHP
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP错误处理函数
2016/04/03 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
offsetParent 算法分析
2010/04/05 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
js全选按钮的实现方法
2015/11/17 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python数据类型详解(一)字符串
2016/05/08 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
环保倡议书
2014/04/14 职场文书
政府门卫岗位职责
2014/04/29 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
国庆节新闻稿
2015/07/17 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
vue的项目如何打包上线
2022/04/13 Vue.js