Phalcon Debug Barのインストール方法と使い方

2016年1月30日

Phalcon Debug Bar Database

少し前から PHP の Phalcon フレームワークを使っているプロジェクトに参画しています。Phalcon を触るのは初めてですが、情報が少なくて辛いですね。

さて、開発支援ツールを探していたところ、snowair/phalcon-debugbar という Symfony ライクなデバッグバーを見つけたのでご紹介。Symfony ほど高機能ではありませんが、実行された SQL の表示、デバッグバーへの変数の出力、履歴機能など、便利な機能が使えるようになります。Phalcon で開発するならぜひ利用したいツールです。

動作確認環境

  • Phalcon 2.0.9
  • snowair/phalcon-debugbar 1.1.27

目次

  1. インストール
  2. app/config/debugbar.php を vendor からコピーしてくる
  3. app/public/index.php を修正
  4. ログイン制御をしている場合はデバッグバーへのリクエストを許可
  5. 使い方
  6. リクエスト履歴
  7. Database タブが出ない場合

インストール

公式サイトの Quick start の通りにすすめます。

Composer からインストール。

$ php composer.phar require --dev snowair/phalcon-debugbar

app/config/debugbar.php を vendor からコピーしてくる

Composer からインストールした後、vendor/snowair/phalcon-debugbar/src/config/debugbar.php を自身のプロジェクトの app/config/debugbar.php にコピーします。

ファイルの配置後のディレクトリ構成です。

app
├── config
│   ├── config.ini
│   ├── debugbar.php
│   ├── loader.php
│   └── services.php

app/public/index.php を修正

index.php の下のほう Phalcon\Mvc\Application をインスタンス化している付近を以下のように修正します。

$application = new \Phalcon\Mvc\Application($di);
$di['app'] = $application;
(new Snowair\Debugbar\ServiceProvider(APP_PATH . 'app/config/debugbar.php'))->start();
echo $application->handle()->getContent();

ログイン制御をしている場合はデバッグバーへのリクエストを許可

ログイン制御をしている場合は Debugbar へのリクエストを無条件で通すようにします。公式に INVO チュートリアルに導入する場合のサンプルコードがあるので参考に。

使い方

ここまでの手順がうまくいけば、ブラウザの下のほうにデバッグバーが表示されるはずです。

Phalcon Debug Bar Message

コントローラや volt テンプレートの変数を Message タブに出力するには以下のようにします。

\PhalconDebug::info($var1,$var2, $var3, ...);
{{ info(var1, var2) }}

ほかにもいろんな出力方法がありますのでマニュアルを確認してください。

https://github.com/snowair/phalcon-debugbar#send-custom-messages-to-debugbar

リクエスト履歴

リダイレクトしている画面などでリダイレクト前の状態が見たい場合は、右上のフォルダアイコンからリクエストの履歴をたどれます。

Phalcon Debug Bar History

Database タブが出ない場合

Phalcon Debug Bar Database

app/config/debugbar.php を vendor からコピーしてくる の手順を見なおしてみてください。これをやらないと Database タブがでません。私もここでハマりました。

まとめ

  • Symfony ライクな Debug Bar
  • SQL 出力が便利
  • 変数の 出力が便利

本番環境にはデバッグバーが表示されないように index.php に環境判別の if 文をいれるのをお忘れなく。それか、Symfony のように本番用と開発用に index.php を分けてしまってもいいと思います。本番用は index.php、開発用は index_dev.php といった感じです。

-技術ブログ
-