Symfony

Symfony は Model View Controller (MVC) パラダイムに従ったWebアプリケーションフレームワークで、PHPで書かれている。symfony-project.com というサイトは2005年10月18日に立ち上げられた。

目的 
SymfonyはWebアプリケーションの開発と保守の効率化を目的とし、よく繰り返されるコーディングを代替する。UNIX、Linux、macOS、Windowsで動作し、利用するにはWebサーバとPHPの他パッケージ管理にComposerを利用する。オブジェクト関係マッピングとしては、PropelとDoctrineをサポートしている。

技術 
SymfonyはModel View Controllerなどのよく知られたデザインパターンを採用している他、依存性の注入による必要オブジェクトの解決を行う。 また、ルーティングには設定ファイルで行う方法の他、アノテーションなどを利用する事が出来る。Spring FrameworkやRuby on Railsなどの他のWebアプリケーションフレームワークに影響を受けている。

また、以下のようなPHP関連のオープンソースプロジェクトの成果をフレームワークの一部として多数利用している。
 または - オブジェクト関係マッピング 
 PHPUnit - 単体テストフレームワーク
 Twig - テンプレートエンジン
 Monolog - PSR-3に準拠するロギングライブラリ
 Swift Mailer - Eメールライブラリ
 Composer - パッケージ管理

スポンサー 
SymfonyのスポンサーはフランスのSensio Labsである。このため、初期の名称は「Sensio Framework」であった。そして、各クラス名には「Sensio Framework」の頭文字である "sf" というプレフィックスが付いているが、オープンソースのフレームワークにすることが決まり、議論の結果プレフィックスをそのまま生かせる「Symfony」に改称された。

応用例 
 Askeet - SymfonyのデモのためのオープンソースQ&Aサイト
 Delicious
 Yahoo! Bookmarks
 Dailymotion - 2009年2月に一部をSymfonyに移行し、移行継続中
Drupal
Laravel

他にも多数のサイトならびにフレームワークでSymfonyまたはそのコンポーネントの一部が使われている。

開発ロードマップ 
Symfony 4.0 世代では Flex という構成ツールが標準で利用されるようになり、必要な機能をレシピとして構成するようになった。HTTPメッセージのやり取りに集中したマイクロフレームワークとしての利用も可能になり、それに伴いマイクロフレームワーク Silex の開発が終了となっている。

リリース

脚注

関連項目 
 Webアプリケーションフレームワーク
 Twig -　Symfony2がデフォルトとするテンプレートエンジン
 Laravel - Symfonyコンポーネントを実装の一部に利用するWebアプリケーションフレームワーク
 Silex - Symfonyコンポーネントを実装の一部に利用するWebアプリケーションフレームワーク

参考文献 
Potencier, Fabien and Zaninotto, François. (2007). The Definitive Guide to symfony. Apress. ISBN 1-59059-786-9.
Potencier, Fabien. (2009). Practical symfony (2009). Sensio Labs Books. Doctrine edition, ISBN 978-2-918390-06-0, Propel edition, 978-2918390077

外部リンク 
 Symfony 2.0
 Symfony Project
 Symfony 1.4 Documentation
 Symfonians.net - Symfonyを使って構築されている当プロジェクトのコミュニティ
 SymfonyLab.com - Symfonyの小技集とフリーなプラグイン集
 
 日本Symfonyユーザー会

PHP
ウェブアプリケーションフレームワーク