Symfony2看上去很美,生产环境不推荐


接触到symfony2是在去年,也就是2010年的时候。在symfony2之前,我一直用的是Zend Framework.



symfony2 采用了php5.3才有的命名空间,并且带来bundle概念,任何对象都是一个bundle. 包括框架组件,第三方插件,甚至你开发中的项目,都是一个bundle.



看上去浪漫极了。 微内核,低依赖,模块化设计,symfony2走了一个非常优雅的方向。



但是在实际开发环境中你会发现, symfony2 的使用是一个噩梦。



你紧迫需要的功能,方法,symfony不给你提供。你常常为了要查询一个功能的实现,翻烂了它的手册,都找不到头绪。



你能在刚接触symfony2的时候,就知道区分dev和prod环境么?怎么在这两个环境中间进行切换?



你知道为什么在dev环境可以正常运行的代码,放到prod环境中又不能工作不?你知道清空缓存对于symfony2的开发过程有多么重要吗?



你知道为什么明明修改了模版,为什么死活没显示不?你知道为毛prod环境,只报500错误,不给你更详细的提示么?



symfony2牛叉的认为生产环境就不应该显示错误信息,你生产环境如果出了问题,查错就么纠结半天。 你以为在dev环境可以,但放到prod环境中你又不行了。



你知道symfony2不提供分页支持么?一切都么自己DIY么?没有现成的类可以用,非要自己DIY,或者用Zend Framework Paginator.



你知道如何操作多表联合查询么?不知道请查阅Doctrine文档。



你知道twig模版有多蛋疼么?{{ {% %} }}, 不同的分割符号,挑战你的神经。



你知道如何在twig模版中调用php的方法么?



在尝试用symfony开发一个项目的时候,我从查询文档,看教程开始,慢慢入手开发。发现开发过程中,总是会有一堆的问题。 而这些问题如何去解决。我不知道从哪里去找。



因为文档中可以提供的有效指导信息实在太少了。例子偏少,而且没有提供完整的例子,文档中的例子虽然没写错,但是你么想它完整的工作,你还需要添加更多的代码。



你说么这样只能看,不能用的代码,有何用?学习过程是多么的闹心,是多么的不便。



symfony2有很多第三方插件,但是你知道那些插件存在多少BUG么?志愿者虽多,但贡献的代码品质良莠不齐。可能没有经过严密的测试。



我们回过头来看Zend Framework,每一个组件的发布,都么经过严密的测试,包括使用PHPunit测试框架进行自动测试。每一个组件,都有自己的文档,跟其他组件有依赖的情况,都有文档写用法,提供例子。



symfony2虽然美,但它好看不好用。



真正的框架,必须要具备:



1. 经过严密测试,保证框架的代码品质。



2. 有丰富的功能组件,保证开发一个生产项目,有足够的工具可以用。



3. 有丰富的文档,有详细的说明,使用教程,实例代码。



4. 有完整的产品发布周期,定期发布维护更新。



5. 有反馈BUG的平台,并通过BUG跟踪平台,保证产品质量。



给那些想要选择symfony2的开发者提个醒,如果你们不怕各种困难,用于挑战自我,能够有足够精力,自己动手DIY,并应对各种突发情况,能够洞悉一切,通过500,就能找出问题所在原因,那你就勇敢的使用symfony2吧。



 



如果你需要一个更稳定,功能组件更丰富,可用性更好,安全性更高,出了问题比较好找解决方法,学习资料丰富,久经考验的框架,那么我推荐Zend Framework.



 



而我现在开发到一般的Symfony2项目,因为出现了很多问题,而我又不能找到更有效的办法,继续开发下去,我决定,推倒重写,采用Zend Framework.



symfony2 浪费了我超过平常5倍的时间。我实在不想一切都自己操心,因为这样框架就没有存在的必要了。



Zend Framework,我重新回到你的怀抱中了。


分类: WEB框架 标签: 发布于: 2011, 点击数: