Symfony2のエラーページのカスタマイズ
PR7になってからフレームワークでエラーページに謎のキャラクターが出現するようになりました。
でも、キャラクターと言えばSymfonyにはしんふぉにゃんがいます。何それ?ってかたはsymfonyの非公式マスコットが作成されたようです - モノノフ日記を参照。
というわけで、エラーページをカスタマイズしなくてはという何か昔に似たようなことをやった気がしなくもありませんが、Symfony2の調査がてらやってみました。
どうやって拡張するか
「画像を上書きすればできるし」という声も聞こえますが、まずはドキュメントを読んでみます。
How to customize Error Pages (The Symfony CookBook)
すぐに見つけました。しかし、これで出来ると思いきやこの通りやっても出来ません。バージョンアップのどこかでパスが変わったようです。
大丈夫。全く問題ありません。こんなことはまだまだ軽少、すり傷です。
そしてソースを追った結果、正しいパスも分かったのですがそんなことを意識しなくても済むようにバンドルを作成してみました。
インストール方法
- 手元にSymfony2 Standard Edition PR7 をダウンロードしてきます。
- SymfonyanBundleをcloneしてきます
$ git clone git://github.com/brtriver/SymfonyanBundle.git src/Acme/SymfonyanBundle
- app/AppKernel.phpにバンドルを追加します。
if (in_array($this->getEnvironment(), array('dev', 'test'))) { $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Symfony\Bundle\WebConfiguratorBundle\SymfonyWebConfiguratorBundle(); $bundles[] = new Acme\DemoBundle\AcmeDemoBundle(); $bundles[] = new Acme\SymfonyanBundle\SymfonyanBundle(); // <= 追加 }
- これでsymfonyanコマンドが利用できるかどうかを確認します。
$ ./app/console ... symfonyan :exception-install Change the icon of the exception page to Symfonyan :welcome-install Change the welcome page to Symfonyan
もし、エラーになる場合はキャッシュが邪魔してる可能性があるのでsudo chmod -R 0777 ./app/cache で。
- SymfonyanBundleで用意したエラーページが呼び出されるようにコマンドを叩くだけ
$ ./app/console symfonyan:exception-install --symlink $ ./app/console assets:install web --symlink