Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: e59d5b0487
Fetching contributors…

Cannot retrieve contributors at this time

92 lines (56 sloc) 1.665 kb

NAME

 Angelos::Tutorial -

SYNOPSIS

DESCRIPTION

HOW TO INSTALL

    $ sudo -H cpan Angelos

HOW TO START

スケルトンの生成

    $ angelos generate --name MyApp
    $ cd MyApp
 
    # ここはModule::SetupのPluginで自動でできるようにする
    $ chmod 700 bin/server

開発サーバーの起動 $ bin/server

デバッグモードでの起動 $ bin/server --debug

HOW TO DEVELOP

ルーティング pathとController, actionへのマッピングを規定. RailsライクなRoutingを規定する

  $ vim conf/routes.pl
 
    HTTP::Router->define(
        sub {
            $_->match('/')->to( { controller => 'Root', action => 'index' } );
        }
    );

複数のルールを書く場合

    HTTP::Router->define(
        sub {
            $_->match('/')->to( { controller => 'Root', action => 'index' } );
            $_->resources('Book');
        }
    );

Controllerの実装

DispatchテーブルにマッチしたControllerのメソッドが、実行される。 Controllerはnewできなければならない。

    package MyApp::Controller::Root;
    use Mouse;
    extends 'Angelos::Controller';
    
    sub index {
       # /share/root/templates/root/index.tt is used
       $c->view('TT')->render;
    }
 
    __PACKAGE__->meta->make_immutable;
    1;

Viewの実装

使いたいViewクラスを継承

    package MyApp::View::TT;
    use Mouse;
    extends 'Angelos::View::TT';
   
    __PACKAGE__->meta->make_immutable;
    1;

使い方

    $c->view('TT')->render({ name => 'John'});
Jump to Line
Something went wrong with that request. Please try again.