プログラマー|プログラマー|テクニック|最適化
この記事では、Apache と PHP でエラー報告を有効にする方法や、単純な PHP スクリプトに print ステートメントを戦略的に配置してより困難なバグの原因を見つける方法など、PHP アプリケーションをデバッグするさまざまな方法について説明します。また、リアルタイム構文解析機能を備えた柔軟な開発環境である Eclipse 用の PHPEclipse プラグイン、および PHPEclipse 用の DBG デバッガー拡張機能についても学習します。
はじめに
コーディング時に大幅に時間を節約できる PHP デバッグ手法が多数あります。効果的かつ基本的なデバッグ手法は、エラー報告を有効にすることです。もう 1 つの少し高度なテクニックには、print ステートメントの使用が含まれます。これは、実際に画面に表示される内容を表示することで、見つけにくいバグを正確に特定するのに役立ちます。 PHPEclipse は、一般的な構文エラーを強調表示する Eclipse プラグインで、デバッガーと組み合わせて使用してブレークポイントを設定できます。
Setup
この記事で説明されている概念を学習するには、PHP、Web サーバー、および Eclipse が必要です。デバッガー拡張機能は、PHP バージョン V5.0.3 をサポートします。
PHPで作成されたページを解析してブラウザに表示するにはWebサーバーが必要です。この記事ではApache2を使用しています。ただし、どの Web サーバーでも十分です。
この記事で紹介したデバッグ手法の一部を利用するには、Eclipse V3.1.1 とプラグイン PHPEclipse V1.1.8 をインストールする必要があります。 Eclipse には Java® テクノロジが必要なため、それもダウンロードする必要があります。
PHPデバッガ拡張モジュールも必要です。取り付けは少し面倒です。デバッガー拡張機能のインストール手順に慎重に従ってください。次に、php.ini ファイル内の、PHP 拡張機能のロードと構成を必要とする行をコメント アウトします。デバッガを使用する必要がある場合は、コメントを解除してください。
ダウンロード情報については、「リソース」をご覧ください。次にエラーメッセージについてです。
エラーメッセージ
エラーメッセージは開発者としての防御の最前線です。エラー メッセージを表示するように構成されていないサーバー上で PHP でコードを開発したいと思う人はいません。ただし、コードをデバッグし、実行する準備ができたら、エラー レポートがオフになっていることを確認する必要があります。これは、サイト訪問者にエラー メッセージが表示されることを望まないためです。これにより、エラー メッセージを悪用するのに十分な情報が提供されてしまいます。サイトの弱点とサイトをハッキングします。
エラーをスローまたは生成した正しいコード行を表示するため、エラー メッセージを活用することもできます。このように、デバッグは、生成されたエラーが表示される行番号をブラウザーで調べ、コード内のその行を検査することになります。後で、PHPEclipse プラグインが、その場で構文エラーに下線を引いたり、ファイルを保存するときに赤い "x" でマークしたりすることで、開発やデバッグ中に非常に役立つことがわかります。
まず、エラーレポートを有効にし、php.ini ファイルでエラーレポートのレベルを設定する方法を見てみましょう。次に、Apache の構成ファイルでこれらの設定をオーバーライドする方法を学びます。
PHP Error Reporting
php.ini ファイルには多くの構成設定があります。 Linux に PHP および Apache 2 をインストールする手順 (「参考文献」を参照) に記載されているように、php.ini ファイルを設定し、適切なディレクトリに配置しておく必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。 2 つの変数とそのデフォルト値は次のとおりです:
display_errors = Off error_reporting = E_ALL
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
php_flag display_errors on php_value error_reporting 2039
这会覆盖在 php.ini 文件中为 display_errors 已经设置的标志,以及 error_reporting 的值。值 2039 代表 E_ALL & ~E_NOTICE。如果愿意采用 E_ALL,请把值设为 2047。同样,还是要重启 Apache。
接下来,要在服务器上测试错误报告。
[1] [2] [3] [4] 下一页