手机版

PHP的自定义模板引擎

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

前面的话

在大多数项目团队中,开发一个Web程序的过程会是这样的:计划文档提交后,前端工程师制作网站的外观模型,然后交给后端工程师,后端工程师用后端代码实现程序逻辑,用外观模型制作基础架构,然后将项目返回给前端工程师进一步完善。这样,项目可能会在后端工程师和前端工程师之间来回往返几次。因为后端工程师不会干扰任何相关的HTML标签,所以他们不需要混合前端代码和后端代码。前端工程师只需要配置文件、动态块等接口部分,不需要接触复杂的后端代码。因此,此时有一个好的模板支持是非常重要的。本文将详细介绍PHP中的模板引擎

摘要

什么是网站模板?准确地说,是指网站页面模板,即每个页面只是一个板块类型,包括结构、样式和页面布局,是创建网页内容的模板,也可以理解为现有的网页框架。您可以用服务器端数据库中的动态内容替换模板中的原始内容,以保持页面样式一致

PHP是一种嵌入在HTML中,在服务器端执行的脚本语言,所以大多数用PHP开发的Web应用的初始开发模板都是混合层数据编程。MVC设计模式虽然可以将应用逻辑与网页呈现逻辑强行分离,但只是将应用的输入、处理和输出分离,网页呈现逻辑(视图)会与HTML代码和PHP程序强耦合。PHP脚本的作者必须既是网页设计师又是PHP开发人员

现在有很多解决方案,几乎可以把网站的页面设计和PHP应用完全分开。这些解决方案被称为“模板引擎”,它们正在逐渐消除因缺乏分层分离而导致的问题。模板引擎的目的是实现上述的逻辑分离功能。它允许开发人员专注于数据控制或功能实现。所以模板引擎非常适合公司的Web开发团队,让每个人都能发挥自己的特长

模板引擎技术的核心比较简单。只需将首页指定为一个模板文件,将这个模板文件中的动态内容,如数据库输出、用户交互等定义为特殊“分隔符”所包含的“变量”,然后放在模板文件中相应的位置即可。当用户浏览时,PHP脚本程序打开模板文件并替换模板文件中定义的变量。这样,当模板中的特殊变量被不同的动态内容替换时,所需的页面就会被输出

目前有很多成熟的模板可以在PHP中应用,比如Smarty、PHPLIB、IPB等。使用PHP编写的这些模板引擎可以使代码上下文更加清晰,结构更加合理。它还可以使网站的维护和更新更容易,创建更好的开发环境,使开发和设计更容易结合。然而,没有一个PHP模板是最合适和完美的。因为PHP模板是流行的东西,所以不是为一个人开发的。如果我们对模板的特点和应用有了清晰的认识,充分认识到模板的优缺点,就可以知道是使用模板引擎还是使用哪个模板引擎

自定义模板引擎类

自定义模板引擎可以更好地掌握模板引擎的工作机制,为学习Smarty做好准备。更重要的是,您自己的PHP模板引擎从来都不是固定的,可以根据项目的需要进行定制

在下面的例子中,一个简单的模板引擎是由前面介绍的模板引擎概念创建的,可以用来处理模板的基本功能。例如,变量替换、分支结构、数组循环遍历以及模板之间的嵌套,如下所示:

?PHP/* * file : MyTpl.class.php类名mytpl是一个用户自定义的模板引擎,它通过这个类对象加载并解析模板文件,并将解析结果输出到*/class mytpl { public $ template _ dir=' templates ';//定义存储模板文件的目录。public $ compile _ dir=' templates _ c ';//定义文件存储目录public $ left _ delimiter=' {//在模板中嵌入动态数据变量的左分隔符:public $ right _ delimiter=' }//在模板中嵌入动态数据变量的右定界符号private $ TPL _ vars=array();//内部使用的临时变量/* * PHP中分配的值将保存在成员属性$tpl_vars中,用于替换模板中对应的变量。@param string $tpl_var需要一个字符串参数作为关联的数组下标,@param mixed $value需要一个标量值来对应模板中的变量名。分配给模板中变量的值*/functionassign ($ TPL _ var,$ value=null) {if ($ TPL _ var!=' ')$ this-TPL _ vars[$ TPL _ var]=$ val

版权声明:PHP的自定义模板引擎是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。