タグ

ブックマーク / teahut.sakura.ne.jp (6)

  • たけまる / Catalyst::Controller::Atompub - Media Resource

    _ Catalyst::Controller::Atompub - Media Resource [perl][atompub] Atompub モジュールの使い方シリーズです. Catalyst::Controller::Atompub は Catalyst の拡張モジュールで, Atompub (Atom Publishing Protocol) サーバを簡単に実装することがで きます. # クライアントは Atompub モジュール [2007-08-12-1] にあります. さて,Entry Resource (いわゆる Atom XML のこと) を扱うサーバについ ては [2007-09-13-1] で説明しました.今回は,Media Resource (バイナ リデータ) のについて説明します.ブログシステムで例えるなら,Entry Resource はブログのテキストであり

  • たけまる / Catalyst Internals - その他のコンポーネント

    _ Catalyst Internals - その他のコンポーネント [perl][catalyst] その他とは,Action, Request などです. 今回は,コンポーネントの内部には立ち入らずに,デフォルトコンポーネ ントを変更する方法のみ紹介します. Action オブジェクトを変更するには,:ActionClass attribute を使いま す.これは,Catalyst::Action::RenderView を呼ぶときに使われている 方法です. sub foo :ActionClass('Foo') { ... } このようにすると,Catalyst::Action::Foo が呼ばれます.厳密には, sub dispatch に続いて,sub execute が呼ばれます. Catalyst::Action::REST では,dispatch を override し

  • たけまる / Catalyst Internals - View

    _ Catalyst Internals - View [perl][catalyst] ■ View の作り方 Catalyst では,アクションを指定しなければ sub process が呼ばれるこ とになっています.そこで,View では sub process を実装します. package Catalyst::View::Foo; use base 'Catalyst::View'; sub process { my ($self, $c) = @_; # render body ... $c->res->body( $body ); } sub process では,$c->res->body を設定します.必要に応じて, $c->res->header を設定してもよいでしょう. View については言うことがあまりないので,今回はここまで. このサイト内 ウェブ全体 書いて

  • たけまる / Catalyst Internals - Controller

    _ Catalyst Internals - Controller [perl][catalyst] ■ Controller の作り方 ここでは,単に Controller を実装するのではなく,サブクラス化される ことを前提として Controller を実装します. 親クラスで実装し,個別の処理をサブクラスで実装します.いまから示す 例では,親クラスで実際の処理を実装し,サブクラスではアクションの定 義のみを行います. 以下,親クラス名を Catalyst::Controller::Super とし,サブクラスを MyApp::Controller::Sub とします. package Catalyst::Controller::Super; use base qw( Catalyst::Controller ); sub do_foo { my ( $self, $c ) = @_

  • たけまる / Catalyst Internals - Plugin

    _ Catalyst Internals - Plugin [perl][catalyst] 昨日 [2007-08-31-1] の続きです. ■ Plugin の作り方 Plugin は,Context オブジェクト ($c) に関数を追加するときに用いら れます.簡単に作れるため,これまでに多くの Plugin が作成されていま す. ます. package Catalyst::Plugin::Foo; sub foo { my $c = shift; # do something ... } Application クラス (ex. MyApp.pm) で Catalyst::Plugin::Foo を指定 します. package MyApp; use Catalyst qw( -Debug ConfigLoader Static::Simple Foo ); 以降,$c->foo

  • たけまる / Catalyst Internals - 処理フロー

    _ Catalyst Internals - 処理フロー [perl][catalyst] 今まで Catalyst の内部実装はみないでいたのですが,Atompub を実装す るときに目を通さざるを得ませんでした (意外に簡単だった,もっと早く 見とけばよかった…). 今さら Catalyst かよ,という感はあるのですが,ネットに出回ってる情 報は少し古かったりするので (Catalyst::Base が使われていた頃が多い), 少しは意味があるかなと. 長くなるので,数回に分けて書きます.今回は処理フローのメモです. Catalyst を起動したときに 1 回だけ実行される処理フローです.何をし ているかは関数名をみれば見当がつくと思います. Catalyst->setup Catalyst->setup_home Catalyst->setup_log Catalyst->setu

  • 1