FireSymfonyを使ってみる

こんにちは。小川です。
先日symfonyのブログにFireSymfonyというものが紹介されていました。FireSymfonyとはFirefoxのアドオンであるFirebugにSymfonyの情報を組み込むためのものです。
FireSymfonyについては以前から存在は気になっていたのですが、いいきっかけなので試してみたいと思います。

インストール方法などの前に、以下の画像が実際に動かしてみた画面になります。
このようにWebDebugツールバーの代わりにFirebugのコンソールにsymfonyタブが追加され、情報が出るようになります。

ではインストール方法です。まずはFirefoxのアドオンが用意されていますので以下のURIよりインストールを行います。

https://addons.mozilla.org/en-US/firefox/addon/9096

アドオンのインストールが終わったら次はsymfony側にプラグインをインストールします。
今回はsymfony1.2を使用しますが、それ以外のバージョンのインストール方法などはfiresymfonyPluginのページに書いてありますのでそちらを参考にしてください。


$ ./symfony plugin:install firesymfonyPlugin

これでインストールは完了です。次にWebDebugToolbarの代わりにFireSymfony用のクラスを使用するようにfactories.ymlを修正します。


# apps/frontend/config/factories.yml
all:
  logger:
    class: sfAggregateLogger
    param:
      level: debug
      loggers:
        sf_web_debug:
          class: sfWebDebugLogger
          param:
            level: debug
            condition:       %SF_WEB_DEBUG%
            xdebug_logging:  false
            web_debug_class: fsWebDebugForSf12
        sf_file_debug:
          class: sfFileLogger
          param:
            level: debug
            file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log

allラベルの中にloggerという項目を追加します。通常factories.ymlの下部にデフォルトの設定がコメントアウトされた状態で入っていると思いますので、そこからコピーしてallラベルに付け足すのが良いでしょう。
コピーしてきた場合はコメントアウトを外し、web_debug_classという項目をsfWebDebugからfsWebDebugForSf12に変更します。それ以外は特に変更する必要はありません。

これで完了です。キャッシュをクリアしてブラウザの再読込を行うと表示されると思います。
このFireSymfonyの利点として、FlashのせいでWebDebugツールバーが隠れちゃう!とか特定の環境だけはWebDebugツールバー表示したくないんだけどクエリとかみたいし、、、などと言うときの代替として使えるところでしょうか。

WebDebugツールバーの代替として使えるものの少し残念な点が。symfony1.2からWebDebugツールバーの各パネルを改良したり、パネルを追加したりできるようになったのですが、このFireSymfonyにはパネルを追加できないという欠点があります。正確に言うとパネルそのものをsymfonyのアプリケーション上で追加することは可能なのですが、アドオン側でFirebug上に表示する項目が決まっているようなので特定のパネルのみしか表示されないという状況です。

これがあると開発が楽になる!というわけではないのですが、覚えておくといいかもしれません。

本日の話とはあまり関係はないですが、昨日SwiftMailerというPHP5用のメールライブラリに関して、symfonyのプロジェクトリードであるFabien Potancier(ファビアン・プートンシェ)さんに移管されました。symfonyの次のバージョンである1.3には標準でSwiftMailerを扱うプラグインが含まれているようですが、今後symfonyでメールを扱う際にはSwiftMailerが一般的になるでしょう。

またSymfony2ではDIContainerやTemplatingという新しいコンポーネントやコントローラまわりが新しくなるほか、ユニットテスト用のLimeも現在2.0が開発されており様々な変更が見込まれます。小さなコンポーネントに切り出されることでより開発がしやすくなると思いますし、コントローラまわりが変わることでパフォーマンスの改善も期待できそうです。

全体としてのリリースはまだまだ先だとは思いますがそれぞれのコンポーネント単位でご紹介していけたらと思います。Doctrine2.0については先日書きましたので、次はLime2.0でしょうか。
DoctrineもLimeもsymfonyのコンポーネントというわけではありませんが、symfonyを語る上で欠かせない存在ですし、そういったものも含めて色々ご紹介していきますので、今後ともアシアルブログをよろしくお願いしますm(_ _)m