Upload
ngi-group
View
1.420
Download
5
Embed Size (px)
DESCRIPTION
フレームワークcatalyst と sledge の比較
Citation preview
Catalyst と Sledge
Catalyst の特徴をかいつまんで
RoRの流れを汲んでいる。
ヘルパースクリプトがとても充実。Scaffoldとかで土台作り。スキーマも自動で作ってくれる。
開発用サーバとかもついてる。
コントローラにアトリビュートという概念がある。
sub index : Private {} ・・・・・・ /waiwai/ sub foo : Local {}、・・・・・・・ /waiwai/foo sub hoge : Regex('^hoge/\d{1}$'){}・・ /waiwai/hoge/6
なんかリライトみたいに使える。
$c とかいうコンテキストオブジェクトなる物をインターフェイスにしていろいろなメソッドを使う。
リクエストの受け取り$dodo = $c->req->param('key')
ビューへ値を渡す $c->stash->{atai} = ‘aaaa’
コントローラ内でちがうメソッドにいったりできる。 $c->forward('aaaaa')、 $c->detach('bbbb')
だいたいの処理の流れ
Dispatch ↓bigin 事前処理 ↓auto ↓action 本処理 ↓end 事後処理 ↓finalize
Sledge の特徴をかいつまんで
ライブドアでつくられた国産初?のフレームワーク
ヘルパースクリプトとかは無い。なんか個人で作っている人はいるけど
アトリビュートなんてもんはありませんからcatalystみたいにやりたいときはmod_rewrite
とかで。
基本的に基底クラス Sledge::Pages::Baseを継承したコントローラに処理を書いていく流れです。このクラスからのインターフェース経由でいろんなメソッドをごにょごにょとします。
リクエストの受け取り $self->r->param('username');
ビューへ値を渡す $self->tmpl->param(phone => $phone);
セッションにセット $self->session->param(name => $name);
リダイレクト $self->redirect( "http://" . $self->create_config->fqdn);
処理の流れ 具体的に
htdocs 以下に例えば hogehoge.cgi とかが置いてあってそのなかから
use strict;
use Hogehoge::Pages::Index;
Hogehoge::Pages::Index->new->dispatch('index');
コントローラに dispatchされます。
Lib/Hogehoge/Pages/Index.pm の indexメソッドにアサインされます。
sub dispatch_index{
my $self = shift;
・・・・・・
ここで本処理をします。あとはビューをレンダー
AFTER_INIT
↓
BEFORE_DISPATCH なんか本処理のまえにごにょごにょ
↓
本処理↓
AFTER_DISPATCH 本処理の後にごにょごにょ↓
AFTER_OUTPUT
BEFORE_DISPATCH C atalystの beginにあたるところキャリア判別してなんかごにょごにょとか XSS対策でごにょごにょ、とかいろいろやっていた記憶が
AFTER_DISPATCHCastalystの endにあたるところ Pv測定したり、アフィリエイト用の処理を
入れたりとかしていた記憶が