加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

最好的PHP 5模板技术?

发布时间:2020-12-13 22:15:13 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找在 PHP中构建我自己的模板层作为我的OOP框架的一部分,但我看起来如此正确地做这个的一些例子.我想避免解析每个html文件以找到告诉模板引擎要做什么的注释,而是使用更快/更清洁/现代的技术.我只需要一些例子,因为我用谷歌环顾四周,没有什么吸引我的
我正在寻找在 PHP中构建我自己的模板层作为我的OOP框架的一部分,但我看起来如此正确地做这个的一些例子.我想避免解析每个html文件以找到告诉模板引擎要做什么的注释,而是使用更快/更清洁/现代的技术.我只需要一些例子,因为我用谷歌环顾四周,没有什么吸引我的眼球.我试图保持我的演示文稿和逻辑分离,但我正在做的事情需要通过html代码的大量逻辑.

,谢谢

附:我不打算使用现有的模板引擎,比如smarty,我想建立自己的模板引擎.

解决方法

我会问你同样的问题,我会问任何建议Smarty的人:

为什么要将模板语言添加到PHP,这是一种模板语言?

PHP是一种模板语言.我认为人们会忘记或尝试将其视为纯粹的OO语言,which it isn’t.发挥PHP的优势.不要尝试做它不是的东西.

总而言之,很难回答你的问题,因为你没有说你的模板系统有多简单或复杂,即你打算支持哪些功能.

如果您的模板语言相对简单,那么正则表达式可能就是您的选择.然而,这对一些微不足道的案件不起作用.控制结构的嵌套可能是最常见的.在这种情况下,您需要编写某种形式的基本解析器.

让我们说你所有的模板结构都是这样的块:

{:...:}

因为在HTML页面中相对不太可能发生(尽管为了完整性,您需要满足用户确实想要使用这些字符组合的情况.

您需要扫描文件以获取此类表达式并相应地处理它们.正则表达式可用于查找所有但不一定匹配的表达式,例如条件包括例如:

{:if ...:}
Some conditional content
{:endif:}

为什么?因为这:

{:if *some condition*:}
{:if *some other condition*:}
Some other conditional content
{:endif:}
Some conditional content
{:endif:}

与正则表达式匹配不能可靠地完成,因此您需要将文件解析为某种形式的词法树,然后对其进行处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读