日期:2014-05-17  浏览次数:20401 次

请教PHP模版引擎的作用?
一直都想不通一个疑惑   模版引擎如smarty  是为了将前后台代码分离   但如果我单独写一个后台页面   然后用include把前台页面包含进来  也可以实现动静分离啊  是不是smarty除了多定义了一些函数外  就没有其他什么用了?  还有用MVC框架的话  视图、模型、控制器分得更详细  理论上来说可以完全不用模版了啊  为什么我见有些框架仍然要用模版?  我是初学者哈  问题傻了点  但请高手详细的解答一下疑惑  多多感谢!!!
------最佳解决方案--------------------
模板引擎主要是为了满足实际多人合作时的分工,尤其开发模板开发规范后,利用免费劳动力做模板

1.模板复杂/数量多/复用多
2.工作流程上易分工给专门做模板的,且此人不会php
3.希望模板里禁止使用php的一些功能,为安全或者为了不让人了解系统原理

于是就会这样:
一个前端只要照设计图套html和css,里面放数据地方镂空,嵌入示例数据或者调数据代码就可以完成他的工作。

有时也是为了模板不容易被其他系统复用或者说为了故意把前端弄复杂



有些时候是坑爹,是蛋疼,是为了照顾不会php的童鞋让他学smarty, 是为了玩正则,为了需要更多服务器和带宽。

------其他解决方案--------------------
差不多吧,不过还有就是smarty呀什么的还有个缓存     
------其他解决方案--------------------
但是你想把include进来的前段页面传递一些数据怎么传,别如前段有个表,你想把php从数据库中获取的数据传给那个html页面怎么传?肯定是要有模板引擎进行解析的,而重点在于到底哪个引擎解析的效率快,功能丰富等等,当然也可以自己写模板引擎。
------其他解决方案--------------------
模板引擎的好处是你可以在php文件中,存储大量的变量,简单点说就是不管其他,尽管存变量就行了

在模板中可以选择需要输出的变量,简单点说,不管其他,只要输出变量就行了
------其他解决方案--------------------
引用:
但是你想把include进来的前段页面传递一些数据怎么传,别如前段有个表,你想把php从数据库中获取的数据传给那个html页面怎么传?肯定是要有模板引擎进行解析的,而重点在于到底哪个引擎解析的效率快,功能丰富等等,当然也可以自己写模板引擎。


不好意思  你是不是说从数据库获取的数据用在html页面里?  这个好像只能在html页面里面用循环抓取出来啊  模板也要在html页面里加循环的啊?
------其他解决方案--------------------
向 HTML 文档里充填内容,你可以直接写入,也可以通过模板引擎间接写入,也可以用 js 载入,方法很多,不可一概而论

你选择什么方式,是你的自由。但并不因为你没选择,就认为那些你没选择的方案是没必要的
------其他解决方案--------------------
模板引擎其实很白痴
------其他解决方案--------------------
写程序方便
------其他解决方案--------------------
如果站在心里已经有谱如何实现一个简单页面角度思考,那么模板引擎,甚至mvc,都可以说是脱了裤子放屁多此一举的玩意。

但是如果换位思考,如果你是做百度空间或者淘宝平台啥的主子,现在想吸引那些民间设计师来给你做免费苦力,那么总不能让他们还写include对不?最好就是发明一套规则,只让他们在模板里写点你定的标签可以调你制定好的标准数据,其他什么php语句写里面都失效,再让他们打包上传,然后模板引擎一解析,就皆大欢喜了。
------其他解决方案--------------------
模版引擎在我看来最大的意义就是让前端不用接触php代码