框架与模版有什么区别,例如PHP的zend framework 和smarty
框架一般用于比较大的项目,而模版一般适用于比较小的项目,这样说对吗?那么除了这个原因,还有什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
框架一般用于比较大的项目,而模版一般适用于比较小的项目,这样说对吗?那么除了这个原因,还有什么呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
框架就是让你更快,更方便地开发应用,现在主流的PHP框架都支持MVC模式的开发,
M即“模型Model”(可以理解为对数据库的操作),
V即“视图View”(用来输出前端数据),
C即“控制器Controller”(后端逻辑,后端操作),
这样可以把前端、后端、数据库逻辑分离开,方便开发
控制器把模型中的数据处理后输出到视图,比如
我要在前端页面输出一句话:“你好,xxx”
后面的xxx需要替换为数据库中的用户名,通过控制器读取数据库数据,保存用户名到变量$user_name中。
不同的模板引擎有不同的语法规则,比如我在模板中填写
通过模板引擎处理,就可以方便输出最终页面了。
一般的框架都会带有一个模板引擎,即V的部分。或者使用开源的模板引擎,smarty就是比较著名的一个
分割线
update at 2012-09-05 15:53:48
下面再给MVC举个例子吧,其实我也是新手就别叫我高手了……⊙﹏⊙b
比如,我们做一个最简单的留言系统,只有一个字段,就是留言的内容
要实现两个最简单的功能:
1.显示留言内容
2.提交留言
传统的开发方式,把所有的代码(sql、php、html)都写到了一起,项目比较大时就不容易维护
现在我们梳理下两个功能的逻辑
1.显示留言内容
逻辑:用户访问->php处理(C)->读取数据库(M)->显示留言内容页面(V)
2.提交留言
逻辑:用户提交->php处理(C)->写入数据库(M)->显示结果页面(留言是否成功)(V)
M就是直接对数据库进行操作的。比如可以把留言数据里的js代码过滤掉。
这个例子很简单,其实不要C也行,比如我们可以在C里判断一下访问IP是不是在黑名单里面,就不读取数据库了,直接显示出错页面。
最后比如我们把数据库读出的留言数据保存在变量$content里,把它输出到模板,根据不同模板引擎写下模板,比如<p>留言内容:{$content}</p>
开发正式的项目的时候你就会理解MVC的含义了,MVC只是一个概念,没有硬性的规定,也不要被MVC束缚。
还是重在实践,建议选个框架,自己动手开发些小项目。
国内的开源框架:
国外的开源框架:
framework和template是不同的概念。
framework(这里指web framework)的概念可以参考wiki,请注意加粗的文字:
template的概念如下:
下图很好的描述了template的工作:
Smarty官网Why use Smarty中也有描述:
framework像是一个骨架,而template只是其中的一部分骨头。
参考链接:
Web template system http://en.wikipedia.org/wiki/Web_temp...
Web application framework http://en.wikipedia.org/wiki/Web_appl...
Why use Smarty? http://www.smarty.net/why_use
我来点简单的说法吧:
Smarty 是一个模板引擎,模板引擎的好处就是当后台业务逻辑改变时,页面模板可以不需要甚至很少跟着变动,同样当页面模板改变时,后台业务代码也未必需要跟着变动。
Zend Framework 是一个框架,框架一般包含模型、视图和控制。模型定义数据结构,控制用来将某个请求传递给相应的视图,而视图就是定义要展现的数据。当数据传输给模板引擎后,模板引擎将数据翻译成用户界面,就是这么回事。
举例:
张三是个框架,你问他什么他回答什么,但是他说的外星语,人类听不懂。模板引擎是个万能翻译,能把外星语翻译成不同的人类语言,虽然语言不一样,但表达的意思相同。
嗯,就是这样滴。
我在2007年到2012年做过好多次培训,内容是《PHP Web应用架构演化》,PPT在此:http://weibo.com/1779910713/yhXYRoqpZ
看完估计就明白模板和框架的区别了