僕がsymfonyを使い続ける10の理由

Zendでも、Symfonyでもなく、CakePHPを選んだ10の理由 - 個人事業主のつぶやき

に触発されて。

先に言っておくと、好きなものを使えばいいと思うけど、FUDっぽいことは建設的ではないし、しないほうがいいと思うんですよ。

理由1: PHP 5のみに対応

僕はPHP 4は仕事でも個人でも使わないので、PHP 5を前提に作ってくれた方がうれしいです。特に例外とか。

理由2: モデルがオブジェクト

配列むりです。

理由3: 運用/開発などの環境の切り替えができる

フロントコントローラの切り替えだけで、エラーの出力方法だったり、特定の値であったり、様々なことの切り替えが可能になります。

理由4: Webデバッグツールバー

必須。ログの出力やセッションの中身の確認、リクエストが来てからDBに発行したクエリの一覧、処理時間の確認とか超便利。

symfony 1.x legacy websiteにもありますが独自拡張も可能です。

理由5: 自動エスケープ

少なくともsymfony 1.3以降であればデフォルトで、アクションからテンプレートに渡された変数は自動的にエスケープされるようになります。その他のバージョンでも設定を変更するだけで同様のことが可能です。

とりあえずhttp://d.hatena.ne.jp/brtRiver/20090613/1244923455とかこのへんを参照。

理由6: ライブラリのオートロード

プロジェクトやアプリケーションのディレクトリにはlibというディレクトリが存在しますが、libというディレクトリに配置したライブラリはオートロードの対象に自動的になります。万能というわけではありませんが、とても楽。

理由7: 例外発生時のデバッグトレース

例外が発生してそれがキャッチされなかった場合、symfonyは例外が発生されるまでのデバッグトレース画面を出力してくれます。これのおかげでだいぶ楽に。

理由8: 拡張性

各所でオーバーライドを考慮したクラス設計をしてくれていたり、EventDispatcherによるクラスの拡張など、ある程度拡張を考慮した作りになっています。

ハードコードされているところもありますが、大体なんとかなったり。

理由9: フォームクラス

なれると楽。なれるまでが若干しんどいですけど。フォームを使うとCSRF対策もできるし、あってよかったと思います。

理由10: 愛着がある

symfonyを選んだ理由は単純に会社で使っていたからですが、使っているうちに愛着がわいてきました。最終的にどのフレームワークを選ぶかなんて、好きなものを使えばいいと思います。好きになれるものがないなら自分で作ればいいんじゃないでしょうか。


これ以外にも理由はありますが、ぱっと思いついた10の理由はこんな感じです。あくまで個人的なものですが。

先の記事ではないですが、symfonyのアレがダメだとか、過激なところだと開発者の方々を非難するような記事も見られました。色々と残念に感じます。

symfonyが初心者の方々にとってハードルが高いというのは、現状では否めないかなあと思うところもあり、本来であればこんなことを書いている暇があるならもっと有用な記事を書くべきかもしれませんが(就業時間中なので本来はまず仕事をすべきですがそれは棚に上げて...)、前述のような理由もありまして書かせていただいた次第です。

symfonyのことで色々書きたいネタがあるので、時間があるときにこつこつ書いていきたいと思います。最近だとtwitterで誰かが疑問とかをつぶやく→捕捉したらブログに書く流れがあったりしますので、#symfonyハッシュタグつけて発言したりすると反応するかもしれません。