勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでエラーメッセージを見やすくするwhoopsの利用方法

  PHP

PHPのエラーメッセージが見づらい。これはこういうもの、と諦めていたがCodeigniterのデバッグモードだと見やすい表示にしてくれるので、バニラPHPでもライブラリか何かを導入すればいいんじゃないかと思った。調べたところwhoopsというエラーハンドラーフレームワークが良いらしい。以下に導入方法をメモ。

 

whoops

公式サイト

https://github.com/filp/whoops

インストール方法

以下コマンドでインストールする。

composer require filp/whoops

 

使い方

ソースコード

require 'vendor/autoload.php';

$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();

共通ファイルとかの頭の部分で上記ソースコードを書いておくと良さそう。

出力例

バニラPHPの場合

Fatal error: Uncaught Error: Class 'TCPDF' not found in /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Tcpdf.php:33 Stack trace: #0 /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Tcpdf.php(57): PhpOffice\PhpSpreadsheet\Writer\Pdf\Tcpdf->createExternalWriterInstance() #1 /var/www/hoge/index.php(49): PhpOffice\PhpSpreadsheet\Writer\Pdf\Tcpdf->save() #2 {main} thrown in /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Tcpdf.php on line 33

上記のように一行でずらっと表示されるため見づらい。

whoopsの場合

見た目がリッチになり、尚且つ赤枠部分をクリックするとエラーに対応したソースコードが右側に表示され見やすい(原因を追いやすい)。

 - PHP

  関連記事

PHPでランダムなカラーコードを生成する「RandomColor.php」ライブラリの利用方法

PHPでランダムなカラーコードを生成したい。自作するとなると「0~9」「a~f」 ...

PHPで「ramsey/uuid」ライブラリを用いてUUIDを生成する方法

PHPでUUID(Universally Unique Identifier)を ...

PHPのHTTPクライアント用ライブラリ「Guzzle」の利用方法

以前に「Requests for PHP」を試したが、似たようなライブラリで「G ...

PHPでルーティング用ライブラリ「AltoRouter」の利用方法

PHPフレームワークのCodeIgniterを勉強していた際にルーティング機能が ...

MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法

MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...