symfonyを選んだ理由
個人的理由なので突っ込みどころ満載かもしれませんが。
- PHP5専用だから
PHP5専用だからPHP5の機能をフルに利用できる。PHP4のことを考えなくても良い。当たり前のようでいままで当たり前でなかったこと。
- yamlによる設定
xmlでの設定は可読性の点からつらいので。ただ、設定ファイルが多いという意見にも少なからず同意してしまいますが、なんだかんだで、本格的に作り込んでいくと設定ファイルは増えていきますし。
- smartyを使わないことが基本
symfonyを正しく使えばView部分にsmartyを使うメリットはそんなにありません。ロジックの分離もできていますし、キャッシュもありますし。部品化を見ても、パーシャルやコンポーネントなど充実してます。ということでsmartyの構文を思い出さなくてもPHPの構文で十分です。
- 充実したキャッシュ機能
キャッシュが原因で予期しない動きになってしまうということもありますが、あらゆるレベルのキャッシュ方法が用意されているので本格運用する上でも助かります。
- プラグイン機能
使えないプラグインもありますが、定番系の処理はプラグインで用意されています。
さらに、社内などでもsymfonyの再利用のための資源としてプラグインでつくっておけば色々なプロジェクトで利用するのも簡単です。
1プロジェクトに同じプラグインを複数利用できないという問題はありますが、ゼロから作らなくても既存のプラグインを参考にすれば複数利用できるように別のプラグインとして作成することもできますし。
- コマンドラインが充実
コマンドラインが使えないとか、コンソールでの作業なんてできないという方はsymfonyを選択しない方がいいかもしれません。
ここまでコマンドラインが充実しているフレームワークはsymfonyぐらいなものです。
- オンラインドキュメントが充実
英語の情報が一番多いですが、日本語の翻訳チームも今年になってから本格的に活動を始めています。(色々とあってあまりお力になれてませんが。。)でも、現在はCakePHPのほうが情報多いですかねぇ。。
と思いつくままに挙げてみましたが、もちろんデメリットもあります。複雑だとか、重いとか。。。
もっと、簡単にいえばPHPに慣れていない人はCakePHPのほうが取っ付きやすいでしょうし、理解しやすいと思います。
自分でガツガツ良い設計ができる人はZendFrameworkを選択したほうが良いかもしれませんし。
OpenPNEがsymfonyで開発されるという記事を見て、同じようなアプリをCakePHPやZFで作ればどうなるだろうと思ったりするのは自分だけ?