这是我的情况:在过去的一年里,我一直在使用自定义框架.它已被用于从小型CMS到大型网站甚至中型社交网络的所有内容.它运作得很好但我现在看到它的局限性.所以,我决定改用第三方框架.更简单的框架(CI,Kohana,Cake)似乎与我所听到的一样缺乏灵活性 – 所以这导致我走向ZF.但是,我也听说ZF可能过于灵活,因而难以使用.更复杂的是,我正在寻找一种通用的解决方案;我需要一个适用于大型项目的小型项目的设置.我是主要开发人员,但我需要我的合作伙伴最终能够学习系统并帮助完成不那么复杂的编程任务.
我研究过Doctrine,我喜欢它.因此,我倾向于将Symfony(与Doctrine)作为ZF的主要框架来填补空白.另外,我需要能够将自己的作品添加到此平台,与任何第三方库并行.我希望这将为我提供一个可靠,可扩展的平台,因为我们实际上无法承担每隔几个项目切换框架的费用.
我正在寻找与我现在情况相同的其他人的建议.任何建议将不胜感激.
编辑:我已经在下面发布了我的解决方案,希望在同样的情况下帮助其他人
>比ZF更简洁
>由于使用了YAML文件,似乎非常可定制(但我从未感到不知所措)
>自定义类的自动加载不需要像ZF那样的额外工作(尽管在ZF中设置并不困难)
>开发人员工具栏非常棒,他们在1.3版中添加了一些不错的功能
>使用其他框架(ZF,eZComponents)的作品的能力让我有信心找到我需要的东西
>捆绑了Doctrine并且很容易设置(实际上Doctrine将成为ver 1.3中的默认ORM)
>似乎Symfony有一个更大的社区.谷歌“symfony教程”与“zend框架教程”相比,你会看到结果数量的巨大差异
>大量文档:教程(到目前为止Jobeet教程非常好),API参考,以及对框架及其基本原理的更易读的描述
>雅虎!已经将它用于他们自己的一些项目 – 很高兴看到一个Big Name支持一个框架恕我直言
编辑:为了希望在同样的情况下帮助其他人,这里有一些我不喜欢Symfony的东西:
>不遵循PEAR命名方案(ZF)
>内部类以“sf”开头.这与将类名的第一个字母大写的做法相反
>变量和函数是write_like_this,但类方法是camelCased – 这对我来说似乎很草率
这些都是化妆品问题;困扰我的事情,因为我喜欢按照自己的方式做事.我意识到无论何时使用第三方软件,您都必须愿意做出一些牺牲.
ZF当然是一个不错的框架,但我觉得使用Symfony作为主要框架并使用ZF扩展它是我和我的团队的最佳选择.
编辑
自从最初发布这个帖子已经有2年了,因为它仍然会受到点击,我想我会快速更新.在过去的两年里,我可能使用symfony 1.x构建了大约25-30个项目,我对它的表现非常满意.作为一个完整的堆栈MVC框架,与Doctrine合作,它几乎处理了我投入的所有内容.无论它无法处理,很容易添加我自己的自定义代码.事实上,这就是我最喜欢的symfony – 扩展是多么容易.我最终构建了一堆插件和Doctrine行为,大大缩短了开发时间.管理生成器工具一直是神派.我仍然在这里和那里使用symfony 1.4进行一些项目,但是现在决定主要关注使用Symfony2.它与symfony 1完全不同,但我非常欣赏它的架构.更重要的是,它似乎比symfony 1.x更容易扩展.我确实错过了1.x的一些功能,但这是切换框架时必须要做的事情.