章: 第6章: 実践運用と成長
「エラーが出ているのに原因がわからない」—— それはデバッグの手順が体系化されていないサインです。
問題と解決策
デバッグで時間を取られる主な原因は、「どこで何が起きているか」を把握するまでに時間がかかることです。コード全体を目で追って「たぶんここかな」と推測するのは非効率です。
PHPには var_dump()・print_r()・error_log() などのデバッグツールがあります。また、開発環境では display_errors = On にして画面にエラーを表示し、本番環境では display_errors = Off・log_errors = On としてログファイルに記録することがセキュリティ上重要です。
デバッグ手段の比較
| 手段 | 用途 | 本番での使用 |
var_dump($var) |
変数の型・値を詳細確認 | ❌ 使用禁止 |
print_r($var) |
配列・オブジェクトを見やすく出力 | ❌ 使用禁止 |
error_log($msg) |
エラーログに書き込む | ✅ 推奨 |
| Xdebug(ツール) | ブレークポイント・ステップ実行 | ❌ 開発専用 |
チェックポイント:
var_dump()を本番コードに残したままになっていませんか?デバッグコードを本番に流すと、内部情報が漏えいするリスクがあります。デバッグ後は必ず削除しましょう。
コードサンプル
<?php
$data = ['x' => 1, 'y' => 2];
var_dump($data);
error_log('debug: reached here');
まとめ & 次のステップ
- 開発時は
var_dump()やprint_r()で変数の状態を確認します - 本番環境では
display_errors = Offにしてerror_log()でログ記録します php.iniのerror_reporting = E_ALLで全警告を表示すると問題を早期発見できます- Xdebugを使うとブレークポイントを使ったステップ実行が可能になります
次回は テスト基礎 — 変更に強いコードを自動検証する仕組みを学びます。