Catalyst

PerlのMVCモデルのフレームワーク。

Catalyst Base

http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Intro.pod#Install
上記のサイトを参考。

http://www.shadowcatsystems.co.uk/static/cat-install
から、インストール用スクリプトをダウンロードして実行。

perl cat-install

次に、Catalystで使うCPAN moduleをインストールする。make installを行うので、root権限で実行。また、lynx,ncftpもインストールしておく。

yast -i ncftp gcc gcc-c++
cpan
perl -MCPAN -e 'install Catalyst::Devel'

CPANの設定で色々聞かれるけれど、ほとんどデフォルト値を使用。UTF-8を使っているので、以下の部分だけnoと返答。

Your terminal expects ISO-8859-1 (yes/no)? [yes] no

create

script/create.pl model Something
script/create.pl view Stuff
script/create.pl controller Yada

start server

catalyst.pl MyApp
cd MyApp
script/myapp_create.pl controller Library::Login
開発用サーバの起動。httpアクセスは、3000番ポートを使う。http://localhost:3000/
script/myapp_server.pl -r

アクセスすれば、雛形を確認できる。 -r オプションは、クラス更新時に自動的にサーバを再起動してくれる。

option description
-r クラス更新時に、サーバを自動的に再起動する
-p port番号を指定する。デフォルトは3000

mod_perl

CPAN Moduleの追加が必要。

Catalyst::Engine::Apache

apacheのmod_perl用設定ファイルに以下を追加。

PerlSwitches -I/var/www/MyApp/lib
PerlModule MyApp
 
<Location /path>
    SetHandler          modperl
    PerlResponseHandler MyApp
</Location>

参考サイトhttp://search.cpan.org/~jrockway/Catalyst-Manual-5.701003/lib/Catalyst/Manual/Cookbook.pod#1._Install_Catalyst::Engine::Apache

redirect

$c->response->redirect('URL');

system function

system関数を使ったとき、Catalystの開発サーバ上だと、戻り値が常に -1 になった。 同じソースを、mod_perl で動かすと、きちんとした値が取れるので、system を使う場合には、mod_perl環境での開発が必要?

base path

mod_perl の時と、開発サーバでは URL が変わる時があるので、どちらでも統一できるような環境変数が準備されている。

  • perl script
$c->request->base
  • template toolkit
[% base %]

file upload

<form action="[% base %]admin/topflash/add_feature" method="post" enctype="multipart/form-data">
  <input type="file" name="upload_file" size="60" />
</form>
my $upload = $c->req->upload('upload_file');
# filename
$upload->filename;

link


 
perl/catalyst.txt · 最終更新: 2008/03/11 10:16 by kazusa
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki