欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP团队选择框架thinkphp和symfony2,我和技术总监分歧,请给予中肯意见? 谢谢

程序员文章站 2024-02-08 17:34:34
...

回复内容:

别侮辱symfony2!不是一个时代的东西。
麻痹,被thinkphp坑死了 老项目真恶心 曾经也面对过这个问题,也曾经尝试在公司推广 Symfony2,我当时的状况跟你们技术总监类似,我对Symfony2与THINKPHP都熟悉,而团队成员都熟悉THINKPHP(不得不说,TP简单,而且推广得太好了,随便找个懂PHP的都可以很快上手),遇到团队的阻力,但不大。


首先,我希望能够改变团队成员对Symfony的误解,所以我快速搭建了一个Demo,包含用户管理、OAuth2 Client、OAuth2 Server、Restful Api、ApiDoc、SonataAdmin后台、FOSCACHE+varnish等(这些是我们业务上需要用到的功能),然后让他们评估用THINKPHP搭建这个功能的工作量。因为都是用开源Bundle来做的,再加上有缓存,功能跟性能上都没问题,搭建速度很快。又演示了Symfony2 CRUD的便捷、功能修改的灵活。这样下来,大部分团队成员都对Symfony抱着浓厚的兴趣。

然后,在团队中进行培训,讲解Symfony的依赖注入、服务容器等具有特色的特性。团队对Symfony的兴趣得到提升。

然而,问题来了。我希望团队成员先自己搭这个Demo来折腾一下,看看Symfony上的文档。团队成员开始遇到各种挫折。

1)Symfony对windows环境不大友好,composer无论是连接国内还是国外的源都很慢;
2)Symfony中文文档极度稀缺,团队成员阅读英文文档吃力;
3)Symfony代码,组件代码太复杂,不好理解。譬如,他们不理解为何就一个ajax请求,需要做这么多工作;定制一个表单,需要写这么多代码;


然后,到了征求大家意见阶段,普遍意见都是不支持转用Symfony,还是喜欢THINKPHP的简单粗暴。


最后,使用了一个折中的方式,框架还是使用THINKPHP,然后引入依赖注入功能,将Symfony上面一些好用的功能以service的方式来实现。譬如:用monolog来代替自带的Log功能,这样可以根据日志的不同级别做不同的记录;配置swiftmailer服务来发送邮件,增加灵活度。


--------------------

Symfony好,但小团队很难招到高水平的Symfony程序员(或者说小团队很难招到高水平的PHP程序员)。 首先我赞同你敢于提出自己观点勇气。
但是:
你要知道,无论任何框架都可以完成你所说的上述功能。
其次,你要明白有时候团队里面做一件事情可能有N种解决方案,但是无论选择哪种解决方案
都需要有一个人来抉择,来负责,他才是负责人,出了问题都是他的,你可以提出你的观点,但你没有权利决定,你可以辞职拒绝,但必须要有那么一个人为团队做出选择,哪怕他的选择是错的,不然这个项目无法进行以及开展。 用drupal吧( •̀∀•́ ) 为什么要用框架呢 你的考虑不无道理,不过快速开发和后期的扩展性需要综合考虑,后期你会发现TP绝非好选择,尤其是自己项目需要长期迭代维护。从你所述,Laravel 5.1 LTS 比较适合,上手也很容易。你可以建议,但最终的决策还是你们头儿说了算。 其实选哪个都没有绝对的对错。但是技术上过于单一是不好的。 Symfony的开发成本较高,维护成本也相对较高。而且就本人经验来说,Symfony框架过于沉重,给服务器负担较高,响应速度太慢,
ZF2,好,但是臃肿。
Laravel目前版本5.0,我个人认为完全可以承担大型项目的需求。用4.*版本开发过三个项目,目前已经在用它开发第4个项目。评价一个字:爽!