少し前から PHP の Phalcon フレームワークを使っているプロジェクトに参画しています。Phalcon を触るのは初めてですが、情報が少なくて辛いですね。
さて、開発支援ツールを探していたところ、snowair/phalcon-debugbar という Symfony ライクなデバッグバーを見つけたのでご紹介。Symfony ほど高機能ではありませんが、実行された SQL の表示、デバッグバーへの変数の出力、履歴機能など、便利な機能が使えるようになります。Phalcon で開発するならぜひ利用したいツールです。
動作確認環境
- Phalcon 2.0.9
- snowair/phalcon-debugbar 1.1.27
目次
- インストール
- app/config/debugbar.php を vendor からコピーしてくる
- app/public/index.php を修正
- ログイン制御をしている場合はデバッグバーへのリクエストを許可
- 使い方
- リクエスト履歴
- 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 チュートリアルに導入する場合のサンプルコードがあるので参考に。
使い方
ここまでの手順がうまくいけば、ブラウザの下のほうにデバッグバーが表示されるはずです。
コントローラや volt テンプレートの変数を Message タブに出力するには以下のようにします。
\PhalconDebug::info($var1,$var2, $var3, ...);
{{ info(var1, var2) }}
ほかにもいろんな出力方法がありますのでマニュアルを確認してください。
https://github.com/snowair/phalcon-debugbar#send-custom-messages-to-debugbar
リクエスト履歴
リダイレクトしている画面などでリダイレクト前の状態が見たい場合は、右上のフォルダアイコンからリクエストの履歴をたどれます。
Database タブが出ない場合
app/config/debugbar.php を vendor からコピーしてくる の手順を見なおしてみてください。これをやらないと Database タブがでません。私もここでハマりました。
まとめ
- Symfony ライクな Debug Bar
- SQL 出力が便利
- 変数の 出力が便利
本番環境にはデバッグバーが表示されないように index.php に環境判別の if 文をいれるのをお忘れなく。それか、Symfony のように本番用と開発用に index.php を分けてしまってもいいと思います。本番用は index.php、開発用は index_dev.php といった感じです。