回复内容:
确实是少了。我想原因是多方面的:
- smarty是用来拼页面的,而现在页面复杂,异步加载,很多逻辑由js实现,导致php直接拼页面本身的工作减少
- smarty本身逻辑复杂,cache层次多,而现实网站多少用不到那么多功能,不用smarty能减少点开销
- smarty的功能并不复杂,各类开源cms类产品多集成自己研发的替代方案,集成smarty的不多。国外开源框架还会提到如何集成,但是这些产品的国内影响力远不如本地的现成开源项目二次开发
- smarty默认会使用本地文件缓存,而目前越来越多的部署环境是不允许本地写文件的(比如一些云环境),需要调整才能使用
- php本身并不复杂,没有复杂到前端工程师学不会的程度,所以也就不必退而求其次学smarty的语法与php层交互
前几年面试工程师必问smarty,因为那是课本上没有但是稍微有点行业嗅觉的工程师都会关注的领域,但是这几年,已经没有人在简历里提到了,你的感觉是对的。
因为 PHP 本身就是最好的
模板语言
Smarty 流行的时候我还没毕业,当时就觉得无法理解。本来 PHP 已经有一个内嵌语法了,像 ... 这种的,一点也不比 Smarty 难学,而且更加灵活,还不要解析,可读性好效率也高。至于说当初 Smarty 鼓吹的前后端分离,不就是把视图单独抽出一层吗?原本 PHP 一个 include 语句就能搞定的事情。所以当时觉得 Smarty 这个东西根本没有存在的意义。
不过现在终于好了,人们的认识回归了常识。
在PHP中。通过使用smarty来解决前后分离的问题。但是在我看来。还不如不分。因为最后还是PHP来改页面。到最后前端也不会改你的东西。所以说相当于硬给加了一层。还有就是说生成本地缓存了。其实我刚开始说的就是已经生成了。所以就用不到这种了。其实。我们是把简单的东西给复杂化了。你可以看看wordpress或者CodeIgniter都是使用原生的模板。因为PHP本身就是一种模板引擎的,它支持跟html进行混合嵌套。那么为什么非要用smarty呢。你还有一次将模板解析成原生PHP的过程。浪费时间啊。还要写文件。还不如直接写原生呢。。。
一。smarty本身过于重量级。自带的一些缓存机制用起来限制很大。
二。ajax等新兴技术引入。很少有页面采用过去的由php服务端一次性渲染。而是交给客户端由js多次渲染。
三。mvc框架兴起,自带的模板引擎比smarty好用。例如CI的
我们公司一个内部项目还在用smarty,而且是在ci里。。
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn