1. 代码结构不直观
教程教开发者通过php app/console server:run来启动服务器,但没有告诉开发者如果用Apache或Nginx服务器时应该把document_root指向web子目录。这令用户一开始比较迷惑,不知道怎样把demo程序运行起来。同样的问题也发生在Model、View、Controller目录的寻找上,它不像ThinkPHP那样简单直观,MVC的代码不能直觉地找出来。
2. 复杂难懂的路由方式
教程里的路由例子在demo工程里并不能运行,原因是demo工程的路由插入了语言标记,而教程对这没有解释(这是在routing.yml里定义的)。demo工程里,如果把一篇文章的标题改成中文,demo程序会报错,原因是demo的URL包含了标题,而标题包含中文时会出问题。路由的代码居然是以注释的方式出现,这令初级的PHP程序员很不习惯。路由除了和注释有关之外,还和一个routing.yml的文件有关,这又是一个非PHP代码的方式,让人很不习惯,好像无缘无故要多学一种标记语言似的。类似的地方还有权限控制,权限控制不是通过PHP方式实现,而是yml+PHP代码注释方式实现。
3. 学习曲线陡峭
Symfony功能很强大,但很复杂,做很简单的功能也需要学很多东西,只适合大项项目。Drupal 8用了Symfony之后估计其学习曲线就更加臭名昭著了。学习Symfony要同时学习twig、Doctrine、yml。学习Symfony之后就不会写HTML和SQL了,因为它都封装成另外的形式出现了。一般的PHP框架,我只需要用半天到1天时间就可以看完教程了解怎样使用。而Symfony得花上一周的时间才能完成这个入门的步骤。
4. 速度不快
Drupal 8使用了Symfony之后速度只有Drupal 7的1/2到1/3。
5. 中文资料少,英文资料太多
这是摘自知乎的:“中文资料太少,主要的以法文为主,英文其次”(http://www.zhihu.com/question/19751601)。初次接触没有见到法文资料,但资料以法文为主令我惊讶了一下。Symfony各种文档、cookbook多得让人望而生畏。
6. 企业级框架
不适合初学者,不适合小项目。
7. 版本更新太快
不久前下了demo程序,版本好像是2.6的。到我开始想认真看一下教程总结一下优缺点的时候发现版本已经发展到2.7了。然后花了一个星期时间学习完教程,发现版本已经发展到2.8和3.0了。使用Symfony 2的Drupal 8才刚刚发布,Symfony就发布3了,这种节奏让程序员很累。当然Laravel也是一样的,开发的时候是版本4,开发完的时候发现已经发布版本5了。
相关文章:7个使用Symfony的理由
评论1
·
国内用symfony还是少数,主要是写CURD那么多年了,还是想学点真东西,symfony在学习这点上不错,