Rob*_*t K 48
对于模板引擎:
对于plain-php:
如果可能的话,我更喜欢PHP本身.并且大多数人不想通过制作自定义主题来破解您的软件,因此很容易粗略阅读并调查其安全性.也就是说,我是那个同时兼顾模板和编程,甚至是一些图形艺术的"人之间"; 我的技能与严格的程序员和严格的艺术家/设计师不同.
小智 38
我发现当我介绍Smarty时,让网页设计师用巧妙的变量制作HTML是相当简单的.编程团队的人员现在专注于更多的后端工作,即Smarty变量内容的制作.
这缩短了开发生命周期,工作可以在更多人之间分配,最终导致更好的设计.
rog*_*pvl 24
嗯,这只是我的意见,但模板引擎很糟糕.您必须首先了解模板引擎的实现方式,然后了解如何使用它.这似乎只是浪费时间,因为PHP单独做得最好,并提供更多的灵活性.
cgp*_*cgp 14
以下原因适用:
Mar*_*iek 10
如果您有非程序员在执行模板,那么使用模板引擎会很有帮助.在许多情况下,简化的模板语言对于非程序员来说比PHP本身更容易获取.
也就是说,当我只是我(或我和其他开发人员)时,我发现自己不再使用模板了.
Zyx*_*Zyx 10
PHP 不是模板引擎,而是一种可用于编写模板或模板引擎的语言.模板引擎不仅仅是一种语言,而且还是允许脚本定位,组织模板或将脚本中的数据分配给它们的编程API.纯PHP绝对没有任何东西 - 它只是一种语言.相反,你应该把这些库,如Zend Framework中的Zend_View进行比较(基本上,它与Smarty完全相同,除了它使用PHP编写模板).您应该询问是否应该使用PHP或其他模板语言作为模板语言.
当谈到模板语言本身时,那么......普通的循环和条件足以编写模板,但这"足够"并不意味着它简单,舒适,高效或灵活.PHP没有为模板设计者提供任何特殊功能,但许多"模板语言"(如Smarty)只提供了有限的PHP子集,因此程序员选择PHP并不奇怪.至少他们可以编写函数并使用OOP,这对于我来说太大了(在我看来),但确实有效并且确实有帮助.
关键是自定义模板语言不受PHP缺点的限制,但是他们的设计者不会看到它,声称"显示变量和循环就足够了".可能的区域,模板语言可能更有效:
在PHPTAL和Open Power Template 2之上提到了遵循这种方式的模板语言的例子.在TinyButStrong中也可以找到一些类似的想法,但不幸的是这个模板引擎非常慢.
当您混淆HTML语法时,PHP作为模板引擎不会抱怨.它会让你忘记关闭标签,错误嵌套标签等.
默认情况下,PHP的输出不会被转义,因此除非您记得在htmlspecialchars()任何地方严格添加,否则您的站点将具有HTML注入(XSS)漏洞.
<p>Hello <?= $name ?></b>
<!-- Simple template full of errors -->
Run Code Online (Sandbox Code Playgroud)
当您尝试正确生成XHTML时,这些问题会更严重.这并不是说你不能用普通的PHP做到这一点 - 当然你可以 - 但这需要更多的努力和勤奋.
Savant就是你要找的.它是一个很好的包装类,允许您在模板中使用PHP运算符,而不是在PHP之上解释新的模板语言.
优点:
没有为系统添加额外的工作是有道理的.
没有开发人员的学习曲线如果你们每个人都受到纪律处分,那么这就是你要走的路.器(Savant)
缺点:
尽管Savant鼓励您正确分离,但它并没有强迫开发人员将业务逻辑与开发代码分开.我有一个永远不应该被打破的规则.您只能在模板中输出变量,使用条件和循环.您绝不允许开发人员在模板中创建变量.不幸的是,无论你告诉他们多少次,开发人员似乎都不会这样做.因此,使用像Smarty这样的引擎会变得有价值,因为开发人员被迫完全保持业务和设计的区别.
如果我正在为自己做一个项目或者没有很多开发人员,我倾向于使用Savant.如果它的项目比我大得多,那么在建筑学中我会选择像Smarty这样的东西.
无论哪种方式,代码中的分离都是使用Savant或Smarty的重要天气.我相信那里还有其他好的选择.
| 归档时间: |
|
| 查看次数: |
53071 次 |
| 最近记录: |