デバッグ方法
fn_print_r()
関数を使用したデバッグ
fn_print_r()
関数を使用したデバッグfn_print_r()
関数を使用して、PHPコードをデバッグできます。この関数は、指定した変数に関する情報を表示します。
fn_print_die()
関数を利用することもできます。変数に関する情報も表示されますが、プログラムは中断されます。
PHPコントローラー内で使用する方法
お客様→管理者のページで管理者に関する情報を表示しましょう。
このページのURLはhttp://example.com/admin.php?dispatch=profiles.manage&user_type=A
です。
URLのディスパッチ(dispatch)パラメータに従って、profiles.php
というコントローラーを探します。そのコントローラーはストアのapp/controllers/backend
ディレクトリにあります。
$mode == 'manage'
で始まるセクションを探します。
次のコードを見つけましょう。
<?php
list($users, $search) = fn_get_users($_REQUEST, $auth, Registry::get('settings.Appearance.admin_elements_per_page'));
次の行にfn_print_r($users)
を追加すると、変数$users
(配列)の中身の情報を確認することができます。

Smartyテンプレート内で使用する方法
fn_print_r()
関数を.tplファイルで使用することができますが、PHPとは構文が異なります。
{$an_array_or_a_variable|@fn_print_r}
[ お客様]→[管理者]ページのテンプレートを変更して、管理者に関する情報を表示しましょう。
manage.tpl
ファイルを探します。
これはdesign/backend/templates/view/profiles
ディレクトリーにあります。
ファイルの最初に次のコードを追加します。
{$users|@fn_print_r}
PHPコントローラーにfn_print_r($users)
を追加するのと同じ結果になります。
AJAXのデバッグ
開発モードとエラー通知を有効にして、 AJAXをデバッグします。
PHP、Smarty、およびSQLのクエリエラーとは異なり、AJAXでのエラーは、開発モードやエラー通知がオンであってもブラウザ上には表示されません。
(ブラウザ上に)エラーメッセージを表示するには、AJAXを無効にする必要があります。
ブラウザでバグのある要素のコードを調べてcm-ajax
(マイクロフォーマット)を削除または変更します。たとえば、cm-ajax1
にリネームします。
ショップフロントの商品ページの「カートに追加」ボタンが何らかの理由で機能しないと仮定します。コードインスペクタを使用すると、このボタンがフォームの一部であることがわかります。強調表示エリアのcm-ajax
をcm-ajax1
に変更します。

こうすることで、「カートに追加」ボタンをクリックすると、ファイルの名前とエラーが発生した行の番号を含むエラーページが表示されます。

Updated over 3 years ago