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関連のオープンソースプロジェクトの成果をフレームワークの一部として多数利用している。

  • PropelまたはDoctrine - オブジェクト関係マッピング
  • 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 - Curlie(英語)
  • 日本Symfonyユーザー会

Symfony Programmierung

Symfony, was genau ist das? » Fachbegriffe

GitHub symfony/symfony The Symfony PHP framework

Why Use Symfony for Enhanced Web Application Development? DesignCoral

Symfony