symfonyのエラー画面をカスタマイズする。 | 金の知恵 開発者ブログ

金の知恵 開発者ブログ

金の知恵は、あなたの知恵の価値を測る無料のモバイルサイトです。

サル知恵は0点!?さて、あなたの知恵は何点?

こんにちは、システム担当の林です。

寒い日が続きますが、風邪など引いていませんか?
僕自身は不思議と毎年この時期でも大きく体調崩すことはほとんどないのですが、
社内には風邪引いている人も多く、油断はできないなぁ。。。と思っている今日この頃です。


さて、今日もまたかなりsymfonyのニッチ系のネタなんですが。。。
symfonyを導入すると、よくあるエラーの画面については、symfonyがデフォルトで表示してくれるものがありますね。

ただ、これは当たり前なのですが、PCサイトに最適化されているので、携帯サイトには向きません。
そこでカスタマイズが必要になります。

まずは、エラー画面の代表格、404 Not Found.

これは、symfony公式サイトのドキュメントにも、また各symfony関連の書籍にもだいたい書いてありますが
setting.yml内で設定します。

---------------------------------------------------
error_404_module: default
error_404_action: error404
---------------------------------------------------

ここを、差し替えたいモジュール名/アクション名に書き換えればOKです。

そして、もう1つ。
アプリケーション側に問題があってページが表示出来ない場合、いわゆる 500エラー(Internet Server Error)の場合です。

こちらはあまりドキュメント化されていないようなのですが、
いろいろ調べてたらこれもカスタマイズできることがわかりました。

方法は、web ディレクトリの下に「errors」というディレクトリを作成し、
その下に、「error500.php」を作成するだけです。
注意点としては、500エラーの場合は、symfonyのlayoutなどが使えないので、
通常はlayout.phpに含んでいるXHTML宣言やHTMLタグなども記述する必要があることです。

ちなみに、これを設定しない場合は、
サーバ上でsymfonyをインストールしたデータディレクトリ($sf_symfony_data_dir変数で指定されているディレクトリ)内の web/errors/error500.php が表示されます。
ですので、カスタマイズする際には、自分のプロジェクト配下のweb/errors/ にこのファイルをコピーしてから手を加えるといいかと思います。

もっとも、このエラーが表示されないのが一番なんですけどね(;^_^A
とはいっても、もしもの場合の備えは必要なので、覚えておいて損はないかと思います。

それでは。

---
金の知恵モバイルサイトはこちら → http://kinchie.jp/