1

私のモジュールのコードでは、未定義の変数をエコーし​​ました。

echo $doesnotexist;

index.phpで次のことを行いました。

error_reporting(E_ALL);
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);

この組み合わせは、コードが実行されると、「Whoops, our bad...」という 404 タイプのページを表示します。また、exception.logには、Notice (" Undefined variable: doesnotexist ") とスタック トレースがあります。

index.phpの指示の一部を削除すると:

error_reporting(E_ALL);
//Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);

フロントエンドは、エラーを示すことなく通常どおりページを表示し、エラーはsystem.logに記録されます。

私の質問は次のとおりです。これらの通知/エラーをフロントエンドに直接出力する方法はありますか? それとも、コーディング中に常にsystem.logまたはexception.logのコピーを開いたままにしておく必要がありますか?

4

2 に答える 2

1

Magento は通常、エラーおよび例外処理に zend 例外/エラー処理クラスを使用します。そのため、magento コードが例外を送信するエラーについては、ログに記録されます。ただし、エラーが magento でキャッチできない場合は、ページに出力されます。

2 つのケースでは、フロントエンドでエラーが発生する可能性があります。

  1. 独自の magento 拡張機能を作成している場合は、magento ページに表示されるようにエラーをスローできます。
  2. .phtml ファイルで作業していて致命的なエラーが発生した場合
于 2013-03-30T15:41:08.947 に答える
0
  1. セキュリティ上の問題として、フロント エンドにエラーと警告を表示するべきではありません。

  2. 例外がある場合、またはシステム ログを作成する場合は、system.log または exception.log から取得できます。

  3. PHP エラーについては、サイト レベルで生成されるエラー ログ ファイルを参照する必要があります。

  4. Mage::setIsDeveloperMode(true); Mage.php をインクルードした後にのみ使用できるので、完全な index.php コードを貼り付けます

于 2013-03-30T19:56:16.467 に答える