189 8069 5689

PHP模板引擎Prototype怎么配置

这篇文章主要为大家展示了“PHP模板引擎Prototype怎么配置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP模板引擎Prototype怎么配置”这篇文章吧。

创新互联主要从事网站设计、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务高港,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

1. 首先第一步是配置模板引擎的根目录,如果不设置则会自动生成根目录的绝对路径。

Template :: $rootPath = dirname(__FILE__); // 相对与绝对路径均可,我们这里则采用绝对路径!如:"C:/wwwroot/prototype"

2. 配置模板文件目录,这个目录是用来存放模板文件的,如果不设置则默认为:templates 目录。

// 这里则采用默认目录,大家根据自己的需求进行设置,建议不要写中文容易出错,目录名的前后加不加正反斜杠都无所谓,最终模板引擎内部会自动校正!
Template :: $templateName = '/templates/';

3. 配置编译文件目录,这是用来存储模板文件被解析后生成的编译文件,如果不设置则默认为:compiles 目录。

Template :: $compileName = '/compiles/'; // 和模板目录一样也采用默认目录。

4. 配置缓存文件目录,这是在模板引擎开启缓存功能后,用来存储编译文件生成的缓存文件,如果不设置默认为:caches 目录。

Template :: $cacheName = '/caches/'; // 一样使用默认

5. 配置模板常量目录,可能大家不太理解模板常量是用来干嘛的,和普通的 PHP 常量又有什么区别?关于模板常量的解释,在接下来的运用中我们在详细探讨,这里就先跟我进行配置即可,如果不设置则默认为:constants 目录。

Template :: $constantName = '/constants/'; // 使用默认

6. 到第六步为止,目录的配置就全部完成了,大家不用担心目录不存在的问题,也无需手动去创建,模板引擎内部会自动帮我们完成。那么接下来就是设置模板常量的文件名称,如果不设置则默认为:default.xml 文件,和目录一样不存在模板引擎会自动创建。

// 我们也采用默认,但大家要注意的是这里必须采用 .xml 为扩展名,因为常量文件是以 XML 标记描述的,如果不是 .xml 结尾,那么可能会导致模板引擎在处理常量时出现异常情况!
Template :: $constantFile = 'default.xml';

7. 设置缓存开关,缓存默认情况下是被关闭的,只有我们去设置他,才会开启。

// 大家注意,这里我写的是一个布尔值,其实这里可以填写任意值,最终都会被隐式转换为布尔值,写 0 或 1 都可以,我直接写布尔值是为了方便大家的理解!
Template :: $cacheSwitch = true;

8. 至此模板引擎的配置基本上就已经全部完成了,还是很简单的。现在我们只需要实例化出模板引擎对象,就可以真正的运行模板引擎了。

$tpl = new Template(); // 实例化出模板引擎,从这一步开始之前的所有配置全部生效,模板引擎实例化时不需要传递任何参数。

9. 在实例化出模板引擎对象以后,我们就可以开始对其进行操作,那么对谁进行操作呢?当然是模板文件了,首先我们要先创建模板文件。在模板文件目录中进行创建。模板文件其实是纯 HTML 代码文件,扩展名可以自定义,而我们约定俗成,都以 .tpl 为扩展名。假设我们已经创建了一个模板文件名为:index.tpl,因为和我们的 php 业务逻辑文件 index.php 同名,这也是按照惯例约定俗成,因为 index.php 文件调用 index.tpl 模板,见名知意。

10. 在创建了模板文件之后,我们就可以在业务文件(之前的配置也都是在 index.php 中执行的)中进行对模板文件的加载以及注入模板变量,关于模板变量和其他的模板标识符(又统称模板标记)将在接下来的步骤中逐一讲解。

// 注入变量的格式有两种,大家注意看 API 手册的说明,数组格式与传统的键值对格式均可以,我们两种都使用一下。
$tpl -> assign('title', '头衔'); // 首先是传统键值对格式
$tpl -> assign(array('title' => '头衔', 'name' => '名称')); // 数组格式明显要更加好用一些,因为在注入多个变量时,就可以不用写多个注入语句,一句话就搞定了。

// 如果出现了两个一模一样的变量名称,那么其后会将之前的给替换掉。以下代码,最终 language 变量的值为:英文。
$tpl -> assign(array('language' => '中文', 'language' => '英文'));// 接下来是加载模板文件,直接写模板名称即可,模板引擎会自动锁定到模板文件目录。
$tpl -> display('index.tpl');

11. 至此对模板引擎的操作就结束了,接下来我们将熟悉一下模板文件中的各个模板标记的使用方法,他们都是用来做什么的。在原型版中模板标记一共有 9 种,分别为:1. 模板变量、2. 模板常量、3. 单行模板注释、4. 多行模板注释、5. include 文件加载、6. template 模板文件加载、7. source 源模板文件加载(较为特殊)、8. if 分歧语句、9. foreach 循环语句。那么我们首先解释一下模板变量吧。


    
    
    {$title} 
    {$123} 

12. 下面是模板常量的使用,模板常量和 PHP 常量虽然名字上都叫他常量,其实本质上并非一回事。模板常量其实可以看做是伪常量,而并非真正的常量,他是通过对 XML 标记的存储,来实现一种全局不变的特定值,这些值需要手动的添加到常量文件中。(手动添加其实不太方便,笔者会在其后的版本迭代中,加入自动添加的功能)

首先我们需要在模板常量文件中手动添加模板常量,代码如下:



    
    
        WEBNAME 
        网站标题 
    
    
    
        123abc 
         
    

 配置好常量后,接下来就是在模板文件中进行调用,代码如下:


{WEBANME} 

{NAME}

 

{abc123}

 

13. 下面是模板的注释符,有两种:一种为单行,一种为多行。常用于对模板文件代码的注解,可以让美工配合设计界面的时候了解代码的实际含义。



{@ 普通的单行注释} 
 
{@ 换行的
单行注释} 

{#}这是多行注释,注意首位呼应!{/#} 
{#}这是多行注释,
我换行了!{/#} 
{#}没有写结尾符号 

14. 模板加载标识符,加载方式分为 3 类,别分为:include 对普通文件的直接加载;template 对模板文件进行编译后加载;source 对模板文件进行编译后直接输出编译文件的路径(此方法较为特殊且并不完美,需要在特定的场合中使用,比如:框架页面的调用)

首先是对普通文件的加载调用,代码如下:



{include path = "test.php"} 
{include path = 'abc.php"} 

{include path = "123.php"} 
{include path = "123.php"} 

下面是对模板文件的编译加载,代码如下:


{template path = 'test.tpl'} 

最后就是模板文件的编译地址的输出,该功能较特殊,即使不理解也没关系,该方法有严重的 BUG 尚未处理完毕,因此并不完美,且使用的概率也极低,这里只做简单的介绍。在其后的版本迭代中,是否会保留并完善,尚在定夺,代码如下:



15. 接下来是经常会被用到的 if 分歧语句,他和 php 的 if 语句很类似,但功能上却很简单,且不支持多重判断以及嵌套判断,但我会在其后的版本迭代中让其功能逐步强大。


{if $action} 

界面1

{/if} {if !$action} 

界面2

{/if} {if $action} 

界面1

{else}

界面2

{/if} {if $action} 

16. 终于到了最后的也是最复杂的 foreach 循环语句的调用了,其功能和 PHP 一样,只是格式上稍有改动。



{foreach $array(key, value)}
    

{%key} ... {%value}

  {/foreach} {foreach $userList(id, username)}    

{%id} ... {%username}

     

{%password}

  {/foreach}

以上是“PHP模板引擎Prototype怎么配置”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站栏目:PHP模板引擎Prototype怎么配置
本文来源:http://cdxtjz.cn/article/picdpd.html

其他资讯