SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Webアプリケーションフレームワーク「Catalyst」入門

初めてのCatalyst入門(14)
フォーム関連のモジュール/プラグイン

トランザクションを実現するコントローラモジュール、変数の値を成形するダンプモジュール

  • X ポスト
  • このエントリーをはてなブックマークに追加

変数の中身を表示する - Data::Dumper -

 Webアプリケーションを開発していると、変数の中身を確認したくなる時がたびたびあります。少し前のCatalystには「Catalyst::Plugin::Dumper」というプラグインがありましたが、これはdeprecatedになった後で削除されました。

 現在はこのプラグインの代わりに、Data::Dumperを使用することが推奨されています。このモジュールを使うと、配列やハッシュなどのデータ構造に従った形式でデータを出力できます。例えば、Catalystで何らかのエラーが発生した場合に表示される次のような形式で、データの構造を含めて表示させることができるようになります。

Catalystのエラー画面
Catalystのエラー画面

 Data::Dumperはほとんどの場合インストールされていると思いますが、もし動作確認する環境に入っていない場合には、次のようなコマンドでインストールできます。

[リスト8]Data::Dumperのインストール
# perl -MCPAN -e 'install Data::Dumper'

 このサンプルでは、Data::Dumperを使用して、dumpアクションが呼び出された場合に、コンソールとレスポンスページに「$c」オブジェクトの内容をダンプしてみます。

[リスト9]Data::Dumperの使用例(Root.pmの一部)
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からメールを配信するためのモジュールについて紹介します。

参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Webアプリケーションフレームワーク「Catalyst」入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 花田 善仁(ハナダ ヨシヒト)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5886 2011/05/06 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング