搜索

首页  >  问答  >  正文

symfony是不是比其他的php框架功能强大很多?

symfony是不是比其他的php框架功能强大很多?

天蓬老师天蓬老师2773 天前600

全部回复(4)我来回复

  • 某草草

    某草草2017-05-16 16:48:24

    Symfony 2和Symfony 1是截然不同的两款框架,在了解时,需要区分看待。Symfony 2是目前Symfony社区发展的重点。评价一个框架,要看其现状,也要看他的发展目标和前景。Symfony 2非常强调灵活性(可扩展性)、功能完备性和性能。

    Symfony 2学习成本高,对于没有实际开发经验,或者对软件工程理念陌生的学习者,学习过程可以用痛苦来形容。但对于有一定经验,或者已经了解Ruby on Rails,Django及Java下若干重框架等的开发者来说,学习成本就不高了;而如果确实需求轻量的框架,Silex是Symfony 2的简化版本,比大多数PHP框架更适合开发简单应用。

    开发效率更是关乎个人习惯了,张飞耍矛,关羽耍刀,选择哪款框架问题都不大,关键是要精通。另一方面,Symfony 2的开发社区很活跃,在GitHub上PHP分类里排名第一,这意味着你需要的功能,很可能已经由其他开发者实现了。

    至于性能问题,不应该脱离Web应用的部署来谈,如果使用小型虚拟主机,Symfony 2运行效率一定会低下。但如果开发强调技术架构的商业应用,Symfony 2在各个运行环节都支持性能优化,而且Symfony 2确实也支撑了DailyMotion和Youporn等超大型网站。

    Symfony 2的可扩展性极高,框架核心部件都是可以被替换的,各组件也可以被单独使用。Drupal、phpBB、EzPublish等著名的PHP开源项目,都在自己的下一个版本里使用Symfony 2的核心组件,或者完全基于Symfony 2重构。

    回复
    0
  • PHP中文网

    PHP中文网2017-05-16 16:48:24

    yes and no. sf比大部分框架功能的确要强大,除了提供基础的mvc模式,他还提供了许多工具,涵盖了开发,测试,安全,模版开发,维护性等等web开发几乎会遇到的各个方面。但是就功能来说也不是sf一家独大,比如zendframework,里面也提供了不少组件,sf也没有,比如Zend_Service_Amazon,Zend_Pdf等。

    目前Symfony2更加强调灵活性和组件性,这一个方向我是很看好和赞同的。你甚至可以利用Symfony/Components来自己设计和创作框架。@SS 同学已经提到这点,许多开源项目也开始使用sf components,我也不多费口舌,你有兴趣可以看看sf的项目创始人Fabien Potencier的《使用Symfony组件创建自己的框架》系列教程:http://fabien.potencier.org/article/5...,若阅读英文有困难你也可以查看我翻译的中文版:http://chrisyue.com/posts/272.%E4%BD...。他写的文章非常的浅显易读,循序渐进让你领会Symfony组件的精髓,非常值得一看。

    Symfony2使用大量面向对象的知识和技巧来实现可维护性和灵活性,这样也导致了Symfony的设计更加复杂和难理解(如果你对组件化甚至面向对象不熟悉的话),学习成本比较高,一个请求过来需要执行的代码也相当多,导致直接执行框架的效率也比较低效,在许多benchmark的结果中Symfony2的得分并不优秀,但是Symfony2有许多可以优化的方法,这些也是值得花时间去了解的。比如说Symfony2的路由组件,可以使用dump方法生成Apache rewrite rules,让更擅长URL parsing的Apache去做路由工作,大大缩短了路由查询的时间。另外Symfony2的文档也声称它是一个Http framework,可以利用http的知识结合一些支持http协议的优化软件比如Varnish这样的反向代理服务器做一些优化工作,在某些场合甚至可以直接将整个应用程序bypass掉,所以http的知识掌握也是相当有必要的。

    总之sf是一个很优秀的框架,不过要想驾驭好它,要做好花很多时间去研究它的准备。学习成本也是一个很重要的因素,这个你自己掂量吧。

    另外我有打算将sf的某些组件php扩展化的想法,比如service container。有兴趣的同学可以跟我联系我们一起研究。

    回复
    0
  • 怪我咯

    怪我咯2017-05-16 16:48:24

    Symfony的功能却是比较完整,但是综合考虑功能性,开发效率,和性能指标,并没有脱颖而出的感觉。
    我觉得Symfony相对其他框架来说,是面向对象做的比较好的,或者说,更加像Java。
    如果你在选择框架的话,我建议根据你的需求出发,还是选择一些更轻量的框架。

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 16:48:24

    只用过symfony2,其它的简单看过,包括yii(http://www.yiiframework.com/),ci(http://codeigniter.com/)。
    symfony2和rails挺类似,基本算是内置了orm(toctrine)和view模板(twig),Controller机制等。
    扩展也还算方便。
    我的总体感觉:
    1. 功能齐全
    2. 入手方便
    3. 体系优美
    4. 文档还算齐全
    唯一的缺点可能是,社区还不太大。
    相比yii和ci,如果是我的话,我还是会选择symfony的。
    貌似zynga在用symfony?

    回复
    0
  • 取消回复