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ツールバーについては活用すると非常に便利ですので、また別の記事でご紹介したいと思います。

 

 

関連するカスタマイズ

style.cssに#contents min-height: 100vh;は必要か?... default/css/style.cssに #contents { min-height: 100vh;}という最低の高さ指定があります。 デフォルトテーマでこれを全ページに適用させている理由としては、新規ページ等でコンテンツが少ない場合に、ある程度高さがないと見た目が悪いということだと思...
Bootstrap3のクラスform-controlを取り除く方法(form_widget)... EC-CUBE3.0系ではSymfonyComponentの1つであるFormにより、Twig内では強力な関数form_widget、form_errorsが使用できます。 これらは作成したFormType(定義ファイル)に従って自動で初期データ入力やエラー処理をしてくれるというたいへん便利な...
Choiceタイプ(ラジオボタン)でNoneを消す方法... セレクトボックスやチェックボックス、ラジオボタンを簡単に生成することができるChoiceタイプは非常に強力なフォームタイプです。 ただ添付画像のようにラジオボタンを生成したときにNoneという選択肢が自動で表示されることがあります。 このNoneの消し方は意外と知られてい...
Invalid parameter number: number of bound variable...   クエリビルダを使用して開発していると頻繁に出くわす例外エラーがQueryExceptionです。 その中でも有名なInvalid parameter numberについてご紹介致します。 この例外はクエリビルダにバインドした変数の数と、渡したパラメーターの数が異なると...

弊社はEC-CUBE公式インテグレートパートナーです。