変数の中身を表示する - Data::Dumper -
Webアプリケーションを開発していると、変数の中身を確認したくなる時がたびたびあります。少し前のCatalystには「Catalyst::Plugin::Dumper」というプラグインがありましたが、これはdeprecatedになった後で削除されました。
現在はこのプラグインの代わりに、Data::Dumperを使用することが推奨されています。このモジュールを使うと、配列やハッシュなどのデータ構造に従った形式でデータを出力できます。例えば、Catalystで何らかのエラーが発生した場合に表示される次のような形式で、データの構造を含めて表示させることができるようになります。
Data::Dumperはほとんどの場合インストールされていると思いますが、もし動作確認する環境に入っていない場合には、次のようなコマンドでインストールできます。
# perl -MCPAN -e 'install Data::Dumper'
このサンプルでは、Data::Dumperを使用して、dumpアクションが呼び出された場合に、コンソールとレスポンスページに「$c」オブジェクトの内容をダンプしてみます。
package FormSample2::Controller::Root; use Moose; use namespace::autoclean; use Data::Dumper; # 省略 sub dump :Local { my ( $self, $c ) = @_; $c->log->debug(Dumper($c)); $c->response->content_type('text/plain; charset=utf-8'); $c->response->body(Dumper($c)); }
これはCatalystのプラグインではないため、アプリケーションモジュールなどで特別な設定を行う必要はなく、Root.pmでuse指定を行ってそのまま使用できます。準備ができたら組み込みサーバーを起動し、次のアドレスにアクセスしてください。
http://<ホスト名またはIPアドレス><:Port>/dump
コンソールと、ブラウザのページの両方で「$c」のデータ構造に従った内容が表示されていることが確認できると思います。
モデルや他サービスからから受け取ったデータの内容を確認したい場合などで便利に使えるモジュールです。
Catalyst 5.90
CPANのCatalyst::Runtimeを検索すると、Catalyst-Runtime-5.89000-TRIALという見慣れないリリースに気がつかれた方もいらっしゃると思います。これは、Catalyst 5.90系の開発バージョンという位置づけで公開されているものです。
Catalyst5.70から5.80へのバージョンアップでは、Mooseへの対応が行われましたが、今回のバージョンアップでは、Plackへの対応が大きな変更となります。
具体的なコンポーネントの変更点としては、これまでCatalyst::Engineネームスペース以下にあった、Catalyst::Engine::HTTPなどのモジュールが無くなり、Catalyst::Engine::Loaderだけになりました。このモジュールはPlack::Loaderへのラッパーとなっており、今後はApacheやFastCGIなどへの接続はPlackに任せるようになります。PlackそしてPSGIについては、第12回で概要を紹介しているので、よろしければこちらも参照ください。
まとめ
本記事では、複数フォームにまたがった一連のトランザクションを実現するためのコントローラモジュールと、デバッグなどで役に立つダンプモジュール、そしてCatalyst 5.90について紹介しました。
次回は、いよいよ本連載の最終回として、Catalystからメールを配信するためのモジュールについて紹介します。