![]() |
1
26
PHP最初是作为一种模板语言(即允许您在HTML中嵌入代码的一种简单方法)。
问题是人们仍然想要一种模板语言,所以像Smarty这样的平台就被发明了。但是如果你现在看看,Smarty支持像它自己的变量和foreach循环之类的东西。。。不久之后,Smarty模板开始出现与以前PHP模板相同的问题;您也可以首先使用本机PHP。 我想说的是,简单模板语言的理想实际上并不是那么容易实现的。它实际上是不可能做到既简单又不吓跑设计师,同时又给它足够的灵活性来实际做你需要它做的事情。 |
![]() |
2
10
我将做一些愚蠢的事情,并建议一些根本不需要模板引擎,并且每个变量/调用最多只需要5个字符-替换
如果您只需要变量替换,尽管这是我实际使用的模板函数:
|
![]() |
3
10
如果你不习惯使用像 Twig (我真诚地推荐)你仍然可以用很少的代码获得好的结果。
所以,基本思想是:
所以基本上我们首先编译模板,然后执行它。只有当缓存的模板尚不存在或者存在比缓存中的模板更新的版本时,才会进行编译。
所以,你用
所以,下面是编译代码:
所以,整个代码如下:
我还没有测试过上面的代码;)这只是基本的想法。 |
![]() |
4
3
没有最终的解决办法。各有利弊。但你已经完成了你想要的。这似乎是一个非常明智的方向。所以我建议你找到最有效的方法来实现它。
在每个模板文件的末尾:
成就奖。但很明显,这混淆了大多数语法高亮引擎。我可以修复我的文本编辑器,它是开源的。但Dreamweaver是另一回事。因此,唯一有用的选择是使用一个小的预编译器脚本,该脚本可以在带有原始$varnames HTML和herdoc封闭模板的模板之间进行转换。这是一种非常基本的正则表达式和文件重写方法:
将
不需要额外的处理程序,并且适用于两种常见的模板类型(原始php和smartyishhtml文件)。唯一的缺点是偶尔使用上述转换脚本。
我还要加一个
不管怎样,你的
我想我自己也要采用这个伎俩。
|
![]() |
5
2
|
![]() |
6
0
我个人使用的是这个模板引擎: http://articles.sitepoint.com/article/beyond-template-engine/5 我真的很喜欢它,特别是因为它很简单。这有点类似于您的最新版本,但是IMHO是一种比使用heredoc并在PHP之上添加另一层解析更好的方法。也没有eval(),但是输出缓冲区,以及限定范围的模板变量。这样使用:
outter模板如下所示:
如果你不喜欢/不能使用短标签,那就用回声代替它们。这是非常简单的,你可以得到,但仍然有所有的功能,你将需要IMHO。 |
![]() |
7
0
该输出:
没什么好奇怪的,但是它确实可以使用标准的PHP而没有扩展。此外,使用函数来封装模板应该有助于正确的MVC分离。另外(这也是我今天编码所需要的)我可以将填写好的模板保存到一个文件中(稍后在我的程序中)。 |
![]() |
8
0
这是mustache的一个最小实现,只需替换变量。
在某些情况下,这已经足够了。如果您需要全功率: https://github.com/bobthecow/mustache.php |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |