Symfony技术的6大亮点

就像登山者都会选择精钢制成的勾子而不是塑料件, 一个开发者极其倚重“既节省时间又可减少日常工作量”的框架。 否则的话,就要编写如此之多的代码……

1. 快速不贪多

在IT世界,人们苦于程序性能的时候并不少见……当项目完成之后就更是如此! 也就是,在所有东西被设计成追求功能性和技术性之时。就算你已经分离出一切,性能优化仍非易事。

另外一面,Symfony2在构想阶段即以速度为先,特别强调性能。 比较来说,Symfony2差不多比Symfony1.4以及Zend Framework 1.10快3倍,却少使用了2倍的内存。

2. 无限灵活性

不管你的需求是什么,Symfony一定适合。 它的dependency injector和Event Dispatcher令框架“全部可配”, 程序的每一块砖都是完全独立的。一个“三合一”框架归为以下几点:

  1. 全功能(完整版):你愿意开发复杂程序,你需要大量功能。
  2. 砖码砖(brick by brick):根据你需要的功能,创建属于自己的框架。
  3. 微框架:作为独立物,Symfony2能够为你的某个项目开发出一个特定功能。 不必重复开发每样东西,不必安装整个框架,只需取出你所需要的那块砖。

3. 可扩展

从最小的砖块,到完整的核心,每样东西都是以“bundle”(或者用Symfony的话说:plug-in)方式来呈现在Symfony2中。 每个bundle意在为框架增加功能性,当然,每个bundle也可以复用在其他项目中,或者被整个社区所共享。
从任何角度讲,bundle系统都可以改变Symfony中的每一样东西,包括框架核心自身。 以系统级接口作为砖块之间的契约,框架的行为即可按照意志来改变,毋须全面地重新配置。

4. 稳定且可持续

SensioLabs主导开发的Symfony,主要版本统统被公司支持长达三年。而对于安全相关的问题甚至可以说是终身受到维护。
对于更加坚固的稳定性,Symfony合约和接口的微版本号(minor versions)都是得到保证的, 全部微版本之间的兼容性是在公共接口所定义的API中加以确保的。

5. 开发之乐

作为一个全功能的环境,Symfony2向开发者保证了一定级别的开发舒适度。 大量苦差(如细碎功能)已经交由框架处理,Symfony2令开发者集中精力到程序的真正价值所在, 以及他们的全般角色校验和生产力提高上面。
在Symfony那些意在减轻开发者负担的工具中,既有传奇般的Web Debug Toolbar(web除错工具条), 也有原生的对开发evironments的支持,连同详尽的报错信息页面,乃至原生security信息等。

6. 易于使用

完全彻底的灵活,满足了专业开发者和高级用户的需求,但Symfony2仍旧是完全可控的。 海量文档、社区和专业支持, 连同框架内置好了的“最佳实践”——best practice早已与框架融为一体,又何须刻意关注和理解它们呢? ——即便是初学者也可以感受到Symfony之“易”。

To make a long story short

选择Symfony意味着拥有了一个长期受到维护的程序组合。同时意味着通晓了如何能令开发者的每日工作变得轻松许多。