ホームページ バックエンド開発 PHPチュートリアル PHP プログラマーのためのデバッグ テクニック_PHP チュートリアル

PHP プログラマーのためのデバッグ テクニック_PHP チュートリアル

Jul 13, 2016 pm 05:38 PM
php できる テクノロジー 時間 持っている プログラマー 導入 コーディング デバッグ

はじめに

コーディング時に大幅に時間を節約できる PHP デバッグ手法が多数あります。効果的かつ基本的なデバッグ手法は、エラー報告を有効にすることです。もう 1 つの少し高度なテクニックには、print ステートメントの使用が含まれます。これは、実際に画面に表示される内容を表示することで、見つけにくいバグを正確に特定するのに役立ちます。 PHPEclipse は、一般的な構文エラーを強調表示する Eclipse プラグインで、デバッガーと組み合わせて使用​​してブレークポイントを設定できます。

この記事で説明されている概念を学ぶには、PHP、Web サーバー、および Eclipse が必要です。デバッガー拡張機能は、PHP バージョン V5.0.3 をサポートします。

PHP で作成されたページを解析してブラウザに表示するには、Web サーバーが必要です。この記事ではApache2を使用しています。ただし、どの Web サーバーでも十分です。

この記事で紹介したデバッグ手法の一部を利用するには、Eclipse V3.1.1 とプラグイン PHPEclipse V1.1.8 をインストールする必要があります。 Eclipse には Java™ テクノロジーが必要なので、Java™ テクノロジーもダウンロードしてください。

PHP デバッガー拡張モジュールも必要です。取り付けは少し面倒です。デバッガー拡張機能のインストール手順に慎重に従ってください。次に、php.ini ファイル内の、PHP 拡張機能のロードと構成を必要とする行をコメント アウトします。デバッガを使用する必要がある場合は、コメントを解除してください。

エラーメッセージ

エラー メッセージは、開発者としての防御の最前線です。エラー メッセージを表示するように構成されていないサーバー上で PHP でコードを開発したい人はいません。ただし、コードをデバッグし、実行する準備ができたら、エラー レポートがオフになっていることを確認する必要があります。これは、サイト訪問者にエラー メッセージが表示されることを望まないためです。これにより、エラー メッセージを悪用するのに十分な情報が提供されてしまいます。サイトの弱点とサイトをハッキングします。

エラーをスローまたは生成した正しいコード行を示すエラー メッセージを利用することもできます。このように、デバッグは、生成されたエラーが表示される行番号をブラウザーで調べ、コード内のその行を検査することになります。後で、PHPEclipse プラグインが、その場で構文エラーに下線を引いたり、ファイルを保存するときに赤い "x" でマークしたりすることで、開発やデバッグ中に非常に役立つことがわかります。

まず、エラーレポートを有効にし、php.ini ファイルでエラーレポートのレベルを設定する方法を見てみましょう。次に、Apache の構成ファイルでこれらの設定をオーバーライドする方法を学びます。

PHPエラーレポート

php.ini ファイルには多くの構成設定があります。 Linux に PHP および Apache 2 をインストールする手順 (「参考文献」を参照) に記載されているように、php.ini ファイルを設定し、適切なディレクトリに配置しておく必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。 2 つの変数とそのデフォルト値は次のとおりです:

display_errors = オフ
error_reporting = E_ALL

これら 2 つの変数の現在のデフォルト値は、php.ini ファイル内で検索すると見つかります。 display_errors 変数の目的は明らかです。この変数は、エラーを表示するかどうかを PHP に指示します。デフォルト値はオフです。ただし、開発プロセスを容易にするために、この値をオンに設定します。

display_errors = オン

error_reporting 変数のデフォルト値は E_ALL です。この設定では、不適切なコーディング方法から無害なヒント、エラーに至るまで、あらゆるものが表示されます。 E_ALL は、ブラウザの出力を混乱させる小さな事柄 (変数が初期化されていないなど) についてのヒントも画面上に表示するため、開発目的には少し粒度が高すぎます。私が知りたいのはエラーと不適切なコーディング方法だけであり、無害なヒントは知りたいわけではありません。したがって、error_reporting のデフォルト値を次の値に置き換えてください:

error_reporting = E_ALL & ~E_NOTICE

Apacheを再起動すれば準備完了です。次に、Apache で同じことを行う方法を学びます。

サーバー上のバグレポート

コンピューター上に複数のバージョンの PHP が存在する可能性があるため、Apache の動作によっては、PHP でエラー報告を有効にしても機能しない場合があります。 Apache は 1 つの php.ini ファイルしか参照できないため、Apache が使用している PHP バージョンを判断することが難しい場合があります。 Apache が自身の設定にどの php.ini ファイルを使用しているかわからないことは、セキュリティ上の問題です。ただし、正しいエラー レベルが設定されるように Apache で PHP 変数を構成する方法があります。

また、サーバー側でこれらの構成変数を設定して php.ini ファイルをオーバーライドまたはプリエンプトして、より高いレベルのセキュリティを提供する方法を知っておくとよいでしょう。

Apache を構成するときは、/conf/httpd.conf にある http.conf ファイルの基本構成がすでに公開されている必要があります。

php.ini ファイルで既に行ったことを行うには、次の行を httpd.conf に追加し、php.ini ファイルを上書きします。

php_flag display_errors がオン

php_value error_reporting 2039

これにより、php.ini ファイルに既に設定されている display_errors のフラグと error_reporting の値がオーバーライドされます。値 2039 は E_ALL および ~E_NOTICE を表します。 E_ALL を使用する場合は、値を 2047 に設定します。繰り返しますが、Apache を再起動する必要があります。

次に、サーバーでのエラー報告をテストします。

テストバグレポート

エラー報告を有効にすると、時間を大幅に節約できます。 PHP のエラーはコード内のエラーを示しています。単純な PHP ファイル test.php を作成し、リスト 1 に示すように定義します。
リスト 1. エラーを生成する単純な PHP

print("次の行ではエラーが発生します。
");
printaline("お願いしますか?");
print("上記エラーのため表示されません。");
?>
最初の print() ステートメントは、その内容を Web ブラウザーに表示します。ただし、2 番目のステートメントではエラーが生成され、Web ページに表示されます。これにより、図 1 に示すように、最後の print() ステートメントが機能しなくなります。

PHP プログラマーのためのデバッグ テクニック_PHP チュートリアル
バグレポートが有効になりました。次に、print ステートメントを使用してアプリケーションのデバッグを支援します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486489.html技術記事はじめに コーディング時に大幅な時間を節約できる PHP デバッグ手法が多数あります。効果的かつ基本的なデバッグ手法は、エラー報告を有効にすることです。もう一つのもう少し高度な技術パッケージ...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles