Symfony2について

Symfony2ってどんなフレームワークなの?って聞かれたので答えてみる。

あ、最初に書いておきますが、これはあくまで自分の主観です。
自分もSymfony2のコアな部分のコードはそんなに読んでいないので、Symfony2を学習するうえで思ったことです。
ここは違うだろう、とかあれば突っ込んでいただけるととても嬉しいです。

Symfony2ってのはSymfony2 Componentsを利用して作られたフルスタックフレームワークです。
ここSymfony2Symfony2 Componentsは別に考えることが重要。
Silexってフレームワークもあるんだけど、これもSymfony2 Componentsが利用されて作られています。

ようは何が言いたいのかっていうと、Symfony2 Componentsってのは物凄く優秀なコンポーネント群で各々のコンポーネント疎結合度が高いので、コンポーネントの再利用がめちゃくちゃしやすいってことです。
Symfony2の開発者であるFabien氏もSymfony2を使って独自のフレームワークの作り方みたいな記事を書いていますしね。
(参照: http://fabien.potencier.org/article/50/create-your-own-framework-on-top-of-the-symfony2-components-part-1


コンポーネントが再利用しやすいと、フレームワークを使うまでもないときでも特定のコンポーネントだけ使うこともできますし、
Fabien氏の記事の内容からもコンポーネントだけ再利用してオレオレフレームワークを作ることだって出来ます。

これだけ聞くとZend Frameworkと似てる気がするけど、実際は似て非なるものだと思う。
確かに設計思想は似ているけど、フルスタックフレームワークとして考えるとSymfony2のほうが遥かに高機能。
個人的にはどちらかというと、Zend Frameworkはフレームワークというよりコンポーネント群な気がする。


OOPな考え方的にオブジェクトの独立性は高いに越したことはないと思っています。
コンポーネント疎結合度の低いフレームワークは色々な縛りが大きくプラグインなどの作成も面倒だったりすることもあります。
そういう意味ではZend Frameworkは良い設計思想だと思います。


ようは何が言いたいかというとみんなSymfony2やればいいよってことです。