11
Catalyst Sledge

エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

Embed Size (px)

DESCRIPTION

フレームワークcatalyst と sledge の比較

Citation preview

Page 1: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

Catalyst と Sledge

Page 2: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

Catalyst の特徴をかいつまんで

RoRの流れを汲んでいる。

ヘルパースクリプトがとても充実。Scaffoldとかで土台作り。スキーマも自動で作ってくれる。

開発用サーバとかもついてる。

Page 3: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

コントローラにアトリビュートという概念がある。

sub index : Private {} ・・・・・・  /waiwai/ sub foo : Local {}、・・・・・・・  /waiwai/foo sub hoge : Regex('^hoge/\d{1}$'){}・・ /waiwai/hoge/6

なんかリライトみたいに使える。

Page 4: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

$c とかいうコンテキストオブジェクトなる物をインターフェイスにしていろいろなメソッドを使う。

リクエストの受け取り$dodo = $c->req->param('key')

ビューへ値を渡す $c->stash->{atai} = ‘aaaa’

コントローラ内でちがうメソッドにいったりできる。 $c->forward('aaaaa')、 $c->detach('bbbb')

Page 5: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

だいたいの処理の流れ

Dispatch ↓bigin 事前処理 ↓auto ↓action 本処理 ↓end 事後処理 ↓finalize

Page 6: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

Sledge の特徴をかいつまんで

ライブドアでつくられた国産初?のフレームワーク

ヘルパースクリプトとかは無い。なんか個人で作っている人はいるけど

アトリビュートなんてもんはありませんからcatalystみたいにやりたいときはmod_rewrite

とかで。

Page 7: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

基本的に基底クラス Sledge::Pages::Baseを継承したコントローラに処理を書いていく流れです。このクラスからのインターフェース経由でいろんなメソッドをごにょごにょとします。

リクエストの受け取り $self->r->param('username');

ビューへ値を渡す $self->tmpl->param(phone => $phone);

セッションにセット $self->session->param(name => $name);

リダイレクト $self->redirect( "http://" . $self->create_config->fqdn);

Page 8: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

処理の流れ 具体的に

htdocs 以下に例えば hogehoge.cgi とかが置いてあってそのなかから

use strict;

use Hogehoge::Pages::Index;

Hogehoge::Pages::Index->new->dispatch('index');

コントローラに dispatchされます。

Page 9: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

Lib/Hogehoge/Pages/Index.pm の indexメソッドにアサインされます。

sub dispatch_index{

 my $self = shift;

 ・・・・・・

ここで本処理をします。あとはビューをレンダー

Page 10: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

AFTER_INIT

BEFORE_DISPATCH なんか本処理のまえにごにょごにょ

本処理↓

AFTER_DISPATCH  本処理の後にごにょごにょ↓

AFTER_OUTPUT

Page 11: エンジニア知識共有会発表資料_20091001_catalyst と sledge の比較

BEFORE_DISPATCH C atalystの beginにあたるところキャリア判別してなんかごにょごにょとか XSS対策でごにょごにょ、とかいろいろやっていた記憶が

AFTER_DISPATCHCastalystの endにあたるところ Pv測定したり、アフィリエイト用の処理を

入れたりとかしていた記憶が