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