13章デバッグとテスト
開発者の最善の努力にもかかわらず、コードが完璧であることはありません。アプリケーションの運用環境における動作に影響を与えたり、何かが期待通りに動作しないときにエンドユーザを苦しめたりするようなバグが入り込んでしまうことは避けられません。
アプリケーションでエラーを適切に処理することはとても重要です†1。しかしながら、アプリケーションがスローするすべてのエラーが予期していたもの、あるいは捕捉可能なものであるとは限りません。このような状況では、アプリケーションを適切に「デバッグする」方法を理解しなければなりません。
[†1] エラー処理の詳細については、「12章 エラー処理」を参照してください。
PHPエンジニアがコードをデバッグするために最初に使うステップの1つがecho
命令です。本格的なデバッガを利用できない場合、開発チームがエラーの発生場所を特定するために挿入したecho "Here!";
命令が開発コードに散乱しているのをよく見かけます。
Laravelフレームワークは、dd()
(https://oreil.ly/N-bOz、「dump and die」の略)と呼ばれる関数を公開することで、新しいプロジェクトに取り組んでいる間、同様の機能を普及させ、簡単にアクセスできるようにしました。この関数は実際にはSymfonyのvar-dumper
(https://oreil.ly/8pXGo)モジュールにより提供され、PHPのネイティブコマンドラインインターフェイスと対話的デバッガを活用する場合の両方で効果的に動作します。関数自体は次のように定義されます。
function dd(...$vars): void { if (!in_array(\PHP_SAPI, ...
Get PHPクックブック ―モダンPHPによるWebアプリケーション実用レシピ集 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.