框架就像一个大楼的地基, 无论大楼怎么盖, 打造地基的方法永远都是类似的.
在我们进行程序开发的过程中, 你会发现每个程序之间都要有很多类似的东西和可以重用的东西, 如果你每个项目过后都把这些类似的东西积累起来, 那么这些代码可以称为库, 当库越来越强大, 甚至连程序结构都可以重用的时候, 你就可以叫他框架了.
模板引擎, 你可以理解成施工队里刷油漆的, 他们是专业刷油漆的, 盖楼的不用管油漆怎么刷, 刷油漆的也不关注楼是怎么盖的.
其实模板引擎的主要作用还是将逻辑和显示进行分离, 最初可能是为了让程序员和美工更好的进行配合, 既然初学者, 我想你经常会把php代码和html写到一起, 你自己是可以看懂的, 但是美工不一定看得懂, 他们可能只能看懂html和css, 再者说如果美工在混合代码里加了复杂的css或者js你也一样会看不懂, 这样就给程序开发带来了很大的困难. 所以才有了模板引擎, 它将逻辑和显示完全分离, 程序员只需要关注逻辑, 在程序的最后将数据准备好然后传递给模板, 而美工只要修改模板而不需要考虑程序逻辑, 模板技术在团队开发中是经常使用的
============================================================================================
smarty 仅是一个模版引擎,做的事情,就是把数据结合模板文件,渲染出来。
个人觉得smarty 语法古怪,硬是把很简单的事搞得很复杂。网上大把的模版类可以拿着用。当然做为一整套的体系的东西而言smarty 是做的不错的,可惜就是不好用。
框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
为什么要用框架?
因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。
像php 比较常用的框架有 zend frameword thinkphp ci 之类
模板是框架的组成部分。框架为实现mvc设计模式,一般都会使用模板机制来写V(view)层,实现V层无php代码,在需要动态输出或者有简单逻辑判断的地方根据模板语法和模板标签来实现。这样,V层代码的编写工作就可以交给前端人员,因为前端人员无须掌握php,只需要掌握相对简单的模板语法和标签即可,这样的好处就不言而喻了。
Smarty是一个强大的模板引擎。用smarty写的V层代码经过“编译”——模板解析引擎按照smarty语法机制进行“翻译”,将有smarty标签的地方自动“翻译”成php代码……
框架可以说是这样一种东西——他已经是一个应用的半成品了,具有完整的结构,你只需按照自己的需求去完成你的系统。而作为MVC框架,模板只是其V部分。
很多框架都有自己的V层机制,如Zend Framework有Zend_View。但是你同样可以将smarty整合进Zend Framework来代替Zend_View的模板,作为其MVC中的V部分。转自:http://www.zhihu.com/question/20455618