TOPシステム開発> コンテキストオブジェクト
まるごとPerl!
使ってわかるCatalyst

第4回:Catalystの最重要オブジェクト
著者:アドウェイズ  加藤 敦   2006/9/14
1   2  次のページ
コンテキストオブジェクト

   さて、アクションの定義の中に一つ重要な変数があります。$c、コンテキストオブジェクトです。

   コンテキストオブジェクトはアクションの第2引数として必ず渡されるCatalystの最重要オブジェクトです。普通のモジュールとは違って、第1引数の$selfは使いません。

   コンテキストオブジェクトから、他のオブジェクトへのインターフェイスのメソッドや、重要なメソッドを使えます。以下に主なメソッドを説明します。

request(またはreq)メソッド

   Cartalyst::Requestオブジェクトを返すメソッドです。CGIモジュールのようにparamメソッドで渡されたパラメータを受け取ります。

$c->req->param('key');


response(またはres)メソッド

   Catalyst::Responseオブジェクトを返すメソッドです。レスポンスの中身を決めるために使います。

$c->res->status(404);
$c->res->body('body');


logメソッド

   Cataliyst::Logオブジェクトを返すメソッドです。ログレベルの名前のメソッドが使えます。

$c->log->info('info message');
$c->log->debug('debug message');


configメソッド

   Catalyst::Configオブジェクトを返すメソッドです。アプリケーションクラスで行った設定やYAMLファイルで行った設定の内容を取得することができます。


stashメソッド

   ハッシュリファレンスを返します。ここにデータを入れておけば、どこからでも参照できます。stashメソッドのハッシュリファレンスのキーは、テンプレート内でもそのまま使えます。


forwardメソッド

   他のアクションや、クラスメソッドを実行するメソッドです。リスト7のように使います。第1引数がアクションの名前か、クラス名になります。クラス名の場合は、第2引数にメソッド名を取りますが、省略するとprocessメソッドが呼ばれます。

リスト7:forwardメソッドの例
$c->forward('/action');
$c->forward('Bookmark::View::TT', 'process');
$c->forward('Bookmark::View::TT');

1   2  次のページ

株式会社アドウェイズ 加藤 敦
著者プロフィール
株式会社アドウェイズ   加藤 敦
アフィリエイトシステムやモバイルサイトの構築などを経て、現在、技術マネージャーとして新規サービスの設計、システムの標準化などに携わる。個人的にCPANモジュールの開発や、オープンソースのプロジェクトに参加している。


INDEX
第4回:Catalystの最重要オブジェクト
コンテキストオブジェクト
  detachメソッド