EC-CUBE3のデバッグモードとは?

EC-CUBE3ではエラーが起きた場合、ログファイルに記録を残しますが画面上には何も表示されず「真っ白な画面」になるか「システムエラー」とだけ表示されます。

これはエラー内容を隠すことでセキュリティ低下を避ける意図があり、WordPressなど多くのCMSと同様の挙動となります。CMS以外のPHPサイトでも通常は制作者が”敢えて”エラーを表示しないようにしています。

システムエラーが発生しました

 

ただし開発中はエラーが表示されないとどこで問題が起こっているのかが分かりません。そこで活躍するのがデバッグモードで、エラーが起こっているクラスやメソッドをバックトレースしてくれます。

EC-CUBE3の開発は難しいという声をたまに聞きますが、このデバッグモードにする方法を知らないために苦労している方が多いのだと思います。

 

デバッグモードにする方法

最も簡単な方法はindex_dev.phpを経由してアクセスする方法です。サイトのURLがhttp://xxx.comと仮定するとhttp://xxx.com/index_dev.phpへアクセスします。ページ下部にSymfonyツールバーが表示されればデバッグモードになっています。

ローカル環境以外の開発ではIPアドレスを追加

次のようなメッセージが表示された場合は、自分のIPアドレスをindex_dev.phpへ登録する必要があります。

You are not allowed to access this file. Check index_dev.php for more information.

index_dev.phpを開いて、許可IPの配列へ自分のIPアドレスを追加してください。(ローカルなど開発環境によっては必要ありません。)

IPアドレスはこちらのページで確認可能です。

※この方法でエラーを確認する場合、正常に動作しているページ(トップページ等)からデバッグモードを実行するようにしてください。エラーのページに直接index_dev.phpを追加すると、エラーの内容が変わってしまう可能性があります。

Symfonyツールバーとは?

通常EC-CUBE3はindex.phpにより通常モードで実行されますがindex_dev.phpを経由することでdebug用のフラグがONになり、エラーの詳細やデバッグに便利なSymfonyツールバーがページ下部に表示されます。

Symfonyツールバーについては活用すると非常に便利ですので、また別の記事でご紹介したいと思います。

 

 

関連するカスタマイズ

基本税率を切り捨て、切り上げ、四捨五入に変更... 開発メンバー全員のルールを揃えておくことが重要です。 dtb_tax_ruleテーブルのcalc_ruleの設定値は次の表の通りです。 calc_rule 方式 1 四捨五入 2 切り捨て 3 切り上げ これをマイグレーションで...
新しくテーブルを作ってエンティティと関連づける方法... 今回は非常に要望が多かった新しいテーブルを作ってエンティティとしてデータ取得をできるようにする方法をご紹介します。 この方法は3系のもので、まもなくリリースされるEC-CUBE4系では利用できませんのでご注意ください。 データベースの作成 ドクトリン定義ファイルの作成(dcm....
商品一覧のページネーションに「最初へ」「最後へ」を表示する方法... 商品一覧ページのページネーションはProduct/list.twigを見るとpagination.twigをインクルードすることで表示されています。 pagination.twigをのぞいて見ると「最後へ」の部分は次のようなコードが書かれています。 このリンクを表示するにはconfi...
ドクトリンで用いられるエンティティとレポジトリとは?... EC-CUBE3やEC-CUBE4で開発を行なっていると必ず耳にするのがドクトリンやエンティティ、レポジトリといったデータベース周りの用語です。 ECサイトはデータベースと密接に関係しているため、これらを用いずにEC-CUBEの開発を行うことは不可能です。 エンティティとレポジトリとは? ...