某草草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重構。
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。有興趣的同學可以跟我聯絡我們一起研究。
怪我咯2017-05-16 16:48:24
Symfony的功能卻是比較完整,但是綜合考慮功能性,開發效率,和性能指標,並沒有脫穎而出的感覺。
我覺得Symfony相對其他框架來說,是物件導向做的比較好的,或者說,更像Java。
如果你在選擇框架的話,我建議根據你的需求出發,還是選擇一些更輕的框架。
仅有的幸福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?