Ground Sunlight

Windowsで作る - Webプログラミングの開発環境(PHP)

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

道具箱

リポジトリ編

フレームワーク編

Webサービス編

自然言語処理環境編

メタ
リンク


このページへのアクセス
今日: 2 / 昨日: 1
総計: 178

basic-library:php-debugbar:1.16

デバッグ出力 - php-debugbar

php-debugbarについて

エラーログと共にデバッグログ(デバッグライト)はプログラム開発では無くてはならない存在です。var_dump() は変数の中身を簡単に表示してくれる Cool な関数ですが、WEBプログラムでは適当な表示先が無いのでログファイルに書かなくてはなりません。そんな時に役立つのが php-debugbar です。

php-debugbarは、ブラウザにデバッグバーを表示し、PHPでデバッグ出力した情報を画面に綺麗に整形して表示してくれます。Whoops と同様に本当に pretty cool な存在です。whoops と php-debugbar はPHPデバッグ環境の最強バディと言ってもいいでしょう。

DebugBarには、ブリッジコレクターと呼ばれる他のパッケージとの統合方法が提供されており、ORMのDoctrinePropel、ログ出力のMonolog、メール送信のSwift Mailerなどがその例です。また、Laravel、Zend Framework、PhalconなどのPHPフレームワークとも統合されています。DebugBarもまた、PHPのデバッグツールとしての選定に関しては異論の余地がありません。

インストール

composer require maximebf/debugbar
Using version ^1.16 for maximebf/debugbar
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing symfony/polyfill-mbstring (v1.14.0): Downloading (100%)
  - Installing symfony/var-dumper (v5.0.5): Downloading (100%)
  - Installing maximebf/debugbar (v1.16.1): Downloading (100%)
symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump)
symfony/var-dumper suggests installing symfony/console (To use the ServerDumpCommand and/or the bin/var-dump-server script)
maximebf/debugbar suggests installing kriswallsmith/assetic (The best way to manage assets)
maximebf/debugbar suggests installing predis/predis (Redis storage)
Writing lock file
Generating autoload files
1 package you are using is looking for funding.
Use the `composer fund` command to find out more!
Note:
Eclipse起動中にパッケージを取得した場合は、プロジェクト・エクスプローラー内の[プロジェクト(apricote)]を右クリックして[リフレッシュ]を選択して下さい。また、新しく取得したパッケージのインテリセンスが有効にならない場合は、プロジェクトのビルトまたはクリーン&ビルドを行ってビルドリストの更新を行って下さい。

パッケージの取得が終わると composer.jsonrequire に以下が追加されます。

composer.json
{
    "require": {
        "maximebf/debugbar": "^1.16"
    }
}


テスト

パッケージのテストフォルダ(test\)に、テスト用のコード(php-debugbar.php)を作成し実行します。この例では、DEBUG_MODEtrue の場合のみ Debug Bar が有効になります。詳細はコード内のコメントを参照して下さい。

/test/php-debugbar.php
<?php
require __DIR__.'/../vendor/autoload.php';
 
use DebugBar\StandardDebugBar;
 
// デバッグモード有効
const DEBUG_MODE = true;
 
// 標準のデバッグレンダラー(StandardDebugBar)の作成
// (DebugBar/Resourcesフォルダーは通常、publicフォルダにコピーして使用する方が良い)
$debugbar = new StandardDebugBar();
$base_url = '../vendor/maximebf/debugbar/src/DebugBar/Resources';
$debugbarRenderer = $debugbar->getJavascriptRenderer($base_url);
 
// デバッグライトはメッセージコレクターに出力する
// 使い方はvar_dump($var)と同じ
$arr = ['0'=>'apple','1'=>'banana','2'=>'chery',];
$debugbar['messages']->debug($arr);
 
// PSR-3 logger互換のログ出力
$debugbar['messages']->info("info");
$debugbar['messages']->notice("notice");
$debugbar['messages']->warning('warning');
$debugbar['messages']->error('error');
?>
<html>
    <head>
        <!-- デバッグモードの場合はJSライブラリを読み込む -->
        <?php if(DEBUG_MODE) echo $debugbarRenderer->renderHead() ?>
    </head>
    <body>
        ...
        <!-- デバッグモードの場合は、デバッグバーを表示する -->
        <?php if(DEBUG_MODE) echo $debugbarRenderer->render() ?>
    </body>
</html>

実行結果

■ 標準のデバッグレンダラーでは以下の表示ができます

  • php —PHP バージョン番号
  • memory — メモリ使用量
  • time — 総実行時間(または任意の測定結果)
  • messages — デバッグ出力(debug/info/notice/warning/errorメソッドで出力した値)
  • request — PHPのスーパーグローバル変数($_GET/$_POST/$_COOKIE/$_SERVER)
  • exceptions — 例外表示

■ デバッグ出力の種類毎にフィルタリングできます。
■ メッセージをクリックすると変数の展開できます。

コメント

コメントを入力. Wiki文法が有効です:
 
basic-library/php-debugbar/1.16.txt · 最終更新: 2020/04/18 10:54 by y2sunlight