開発環境・コマンドライン

PHPエラーレベルの確認方法を解説

PHPでエラーレベルを確認する方法をシンプルに紹介します。

error_reportingなどの機能で現在のエラー設定を把握でき、デバッグや運用でのログ管理がスムーズに行えます。

ぜひ実践してみてください。

PHPエラーレベルの基本

エラーレベルの概要

PHPは実行時に発生するさまざまなエラーに対してレベル分けして管理する仕組みを提供しています。

エラーレベルは、プログラムの実行中に発生する問題の重大度に応じて分類され、開発中のデバッグや運用環境でのエラー管理に役立ちます。

各エラーレベルの種類と特徴

PHPには複数のエラーレベルがあり、それぞれに目的と用途があります。

たとえば、

  • E_ERROR: 致命的な実行時エラーです。プログラムの続行が不可能な場合に発生します。
  • E_WARNING: 致命的ではない実行時エラーです。プログラムは継続しますが、注意が必要な場合に発生します。
  • E_PARSE: パースエラーです。構文エラーがあるとこのレベルでエラーが発生します。
  • E_NOTICE: 軽微な実行時エラーです。たとえば、未定義の変数を参照した場合に発生するため、必ずしもプログラムの実行に影響しません。

各エラーレベルは、プログラムの設計や動作環境に応じたエラーハンドリングを行うための基準となり、デバッグ作業の助けとなります。

エラー表示の目的と利用シーン

エラー表示は、プログラム開発時に問題点を速やかに把握し、修正へと導くための情報を提供します。

開発環境では、可能な限り詳細なエラー情報を表示することでバグ発見が容易となり、本番環境ではユーザーにエラー内容が漏れないように制限された情報をログに記録することが求められます。

error_reporting関数によるエラーレベルの確認

基本的な使い方

error_reporting関数は、現在のエラーレベルを取得・変更するために利用されます。

この関数により、実行中のスクリプトがどのエラーレベルで動作しているのか確認することができます。

現在設定されているエラーレベルの取得方法

以下のサンプルコードは、現在のエラーレベルを取得して表示する方法を示しています。

<?php
// 現在のエラーレベルを取得する
$currentLevel = error_reporting();
// 結果を表示する
echo "Current error reporting level: " . $currentLevel;  // 数値で表示される
?>
Current error reporting level: 32767

一時的な設定変更の手順

error_reporting関数に適切なエラーレベルの定数を渡すことで、一時的に設定を変更することも可能です。

たとえば、すべてのエラーを表示させる場合の例は以下のとおりです。

<?php
// 全てのエラーを表示するための設定
error_reporting(E_ALL);
// 動作確認用のコード
echo "全てのエラーが表示される状態です。";
?>
全てのエラーが表示される状態です。

php.iniによるエラーレベル設定

php.iniの基本構成とエラー項目

php.iniファイルは、PHPの設定を一元管理するためのファイルです。

このファイル内にはエラーレベルに関する設定項目が含まれており、error_reportingディレクティブを用いてエラー表示の範囲を指定することができます。

たとえば、開発環境向けにはすべてのエラーを表示し、本番環境向けには不必要なエラーを隠す設定が一般的です。

; php.ini サンプル設定例
error_reporting = E_ALL
display_errors = On

開発環境と本番環境での設定の違い

開発環境では、エラーを詳細に表示することでバグの早期発見を促進します。

以下は開発環境向けの一般的な設定例です。

error_reporting = E_ALL
display_errors = On

一方、本番環境ではユーザーにエラー情報が漏れないようにし、ログに記録する設定が推奨されます。

error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING
display_errors = Off
log_errors = On

設定反映の手順

php.iniファイルを変更した後は、PHPの設定が反映されるようにWebサーバーまたはPHPのプロセスを再起動する必要があります。

設定内容を反映させるための手順は、利用している環境により異なりますが、一般的な手順は以下の通りです。

php.ini更新後の注意点

php.iniの設定を更新した場合、設定が正しく適用されているか確認するために、再度phpinfo()関数などを利用してエラーレベルの確認を行うことが重要です。

例えば、以下のサンプルコードを用いて確認できます。

<?php
// 現在のPHP設定を確認する
phpinfo();
?>
(phpinfoの出力内容の一部に、error_reporting の設定が表示される)

運用時の留意点

ログ出力とエラー管理

エラーレベルの設定は、デバッグ作業だけでなく、運用時の障害調査にも大いに役立ちます。

ログ出力を適切に設定することで、本番環境でのエラー発生時にも迅速な対応が可能となります。

デバッグ時の設定変更による影響の確認

デバッグ時に一時的にエラーレベルを変更する場合、設定変更が他の部分に影響を与えないか確認する必要があります。

エラーレベルを変更するサンプルコードとして、以下の例が挙げられます。

<?php
// 元のエラーレベルをバックアップ
$originalLevel = error_reporting();
// 一時的にE_ALLを設定する
error_reporting(E_ALL);
// デバッグ用のメッセージ表示
echo "デバッグ中: 全てのエラーを表示しています。";
// 後で元のエラーレベルに戻す
error_reporting($originalLevel);
?>
デバッグ中: 全てのエラーを表示しています。

運用環境でのエラーレベル調整のポイント

運用環境では、セキュリティやパフォーマンス向上のため、エラーレベルの調整が求められます。

不必要なエラー情報を非表示にしつつ、ログとして記録することで、エラー情報が漏れるリスクを低減できます。

環境ごとの設定を明確に区分し、定期的に設定内容を見直すことが大切です。

まとめ

本記事では、PHPのエラーレベルの基本、error_reporting関数による確認方法、php.ini設定の手順及び運用時の留意点について詳しく解説しました。

内容を通じ、エラー管理の手法が明確に把握できるようになります。

ぜひ、ご自身の開発環境で設定の見直しを試してみましょう。

関連記事

Back to top button
目次へ