1. 快速不貪多
在IT世界,人們苦于程序性能的時候并不少見……當項目完成之后就更是如此! 也就是,在所有東西被設計成追求功能性和技術性之時。就算你已經分離出一切,性能優(yōu)化仍非易事。
另外一面,Symfony2在構想階段即以速度為先,特別強調性能。 比較來說,Symfony2差不多比Symfony1.4以及Zend Framework 1.10快3倍,卻少使用了2倍的內存。
2. 無限靈活性
不管你的需求是什么,Symfony一定適合。 它的dependency injector和Event Dispatcher令框架“全部可配”, 程序的每一塊磚都是完全獨立的。一個“三合一”框架歸為以下幾點:
全功能(完整版):你愿意開發(fā)復雜程序,你需要大量功能。
磚碼磚(brick by brick):根據(jù)你需要的功能,創(chuàng)建屬于自己的框架。
微框架:作為獨立物,Symfony2能夠為你的某個項目開發(fā)出一個特定功能。 不必重復開發(fā)每樣東西,不必安裝整個框架,只需取出你所需要的那塊磚。
3. 可擴展
從最小的磚塊,到完整的核心,每樣東西都是以“bundle”(或者用Symfony的話說:plug-in)方式來呈現(xiàn)在Symfony2中。 每個bundle意在為框架增加功能性,當然,每個bundle也可以復用在其他項目中,或者被整個社區(qū)所共享。
從任何角度講,bundle系統(tǒng)都可以改變Symfony中的每一樣東西,包括框架核心自身。 以系統(tǒng)級接口作為磚塊之間的契約,框架的行為即可按照意志來改變,毋須全面地重新配置。
4. 穩(wěn)定且可持續(xù)
SensioLabs主導開發(fā)的Symfony,主要版本統(tǒng)統(tǒng)被公司支持長達三年。而對于安全相關的問題甚至可以說是終身受到維護。
對于更加堅固的穩(wěn)定性,Symfony合約和接口的微版本號(minor versions)都是得到保證的, 全部微版本之間的兼容性是在公共接口所定義的API中加以確保的。
5. 開發(fā)之樂
作為一個全功能的環(huán)境,Symfony2向開發(fā)者保證了一定級別的開發(fā)舒適度。 大量苦差(如細碎功能)已經交由框架處理,Symfony2令開發(fā)者集中精力到程序的真正價值所在, 以及他們的全般角色校驗和生產力提高上面。
在Symfony那些意在減輕開發(fā)者負擔的工具中,既有傳奇般的Web Debug Toolbar(web除錯工具條), 也有原生的對開發(fā)evironments的支持,連同詳盡的報錯信息頁面,乃至原生security信息等。
6. 易于使用
完全徹底的靈活,滿足了專業(yè)開發(fā)者和高級用戶的需求,但Symfony2仍舊是完全可控的。 海量文檔、社區(qū)和專業(yè)支持, 連同框架內置好了的“最佳實踐”——best practice早已與框架融為一體,又何須刻意關注和理解它們呢? ——即便是初學者也可以感受到Symfony之“易”。