最近在用两套框架做对比编码,说说我的一些感觉吧。
Php的framework有点大同小异这是废话,因为php原生是不支持MVC的,
所以基本所有的框架最主要的一点就是解决MVC框架的问题,
两者都是通过主入口分发请求的模式来完成的。
在MVC的模型设计上zendFramework更趋近于ROR,基于controller-action的模型。
而symfony则是一种app+module+action的模式。
你可以把symfony的module理解成为controller的一种演变模式。
symfony提供了一个叫做symofony的命令行形式,前提是你要使用PEAR进行安装一些额外的东西,
当然,如果不想安装也可以,不过就要用复杂的php /symfony-path/symfony这样的命令来做一些事情。
zendFramework框架比起symfony的框架相对简单很多也清晰很多,对于使用者来说,
你不光光要知道你运行的代码是怎么工作的,更多的是要知道内部做了什么,
否则你可能连require都弄不明白。
symfony则相对复杂,封装了相当多的细节,由于有脚手架,因此很多事情你只要明白怎么做,
真的要深究的话,那个地方还是很绕的来着。
大部分情况下,zend的代码是全部要自己写的,包括controller的继承关系,
脚手架上,symfony学ror算是学的不错,从初始化安装部署到清理缓存,都可以用命令行来操作。
下面提一些细节的,个人认为,认证机制上,zendframework的框架更加完美清晰,
symfony把user对象继承了session对象总觉得怪怪的,而且丢了一个myUser.class.php放在lib里面,
有时真觉得这个myUser有点bad smell,想改个名字都不行。
权限控制上,zend通过代码完成,而symfony通过配置完成,熟悉了的话,symfony的更加统一。
路径问题,有时觉得symfony的路径奇怪的不得了,但是不管怎么说还是正常工作着的,
或许是我还不够熟悉的原因吧,但是zend的路径就简单很多。
模板上,zend肯定推荐集成smarty了,而symfony我还没看到怎么集成。
下面是最关键的一个,也是我放弃zend转向使用symfony的关键,
zend不支持页面上的js的form_tag,这个意味着什么,用过ror的朋友肯定知道,
对的,你所有的操作有一部分不支持js操作,例如删除,你甚至不能控制其变成一个伪js操作来保护REST路径。
symfony做的不错,虽然还没ror那么完美,但是已经有了,前端也默认集成prototype,这个选择不错。
还有一个就是,symfony有一个dev环境,这个环境下很有用的一个东西就是代码执行跟踪,
这样将会很容易发现开发中出现的一些错误。非常有用:)
by the way,symfony至今的中文文档少的可怜(不过E文的绝对不少哦)。
好了,随着深入开发,我想还会有更多的体会的,以后有机会再来写。
开发[DEV] | 评论(0) | 引用(0) | 阅读(1958)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 请输入左侧的字母,不区分大小写