こんにちは,五十嵐です. 「Catalyst を使ってみよう」 シリーズ,最後のまとめです.今までにやったこと - インストールなど - を簡単にまとめておきます.

今回の「Catalyst を使ってみる」シリーズでは,以下を参照しながら左の画像のような簡単なブックマークのアプリケーションを作成しました.
OS は Linux/Fedora Core 6 (FC6) です.perl の環境は基本的なものがインストールされていれば良いと思います.データベースとして MySQL を使用.Catalyst の使用テストですので,誰でも使用できる test データベースを使用して,Table を作成しています.
CPAN モジュールをいくつかインストールしたのち,catalyst.pl を使用してアプリケーション環境を作り,ブックマークアプリケーションを作成しました.
以下は作業内容を要約したものです.
Linux (FC6) のバージョン
$ uname -r
2.6.18-1.2869.fc6
perl 関連の RPM (今回の作業に必要のないものも含まれている)
$ rpm -qa | grep -i '^perl'
perl-Digest-SHA1-2.11-1.2.1
perl-DBI-1.52-1.fc6
perl-HTML-Tagset-3.10-2.1.1
perl-Archive-Tar-1.30-1.fc6
perl-BSD-Resource-1.28-1.fc6.1
perl-5.8.8-10
perl-Digest-HMAC-1.01-15
perl-HTML-Parser-3.55-1.fc6
perl-libwww-perl-5.805-1.1.1
perl-NKF-2.07-1.1.fc6
perl-URI-1.35-3
perl-XML-Parser-2.34-6.1.2.2.1
perl-Net-DNS-0.59-1.fc6
perl-Net-SSLeay-1.30-4.fc6
perl-SGMLSpm-1.03ii-16.2.1
perl-IO-Socket-INET6-2.51-2.fc6
perl-DBD-Pg-1.49-1.fc6
perl-Socket6-0.19-3.fc6
perl-Compress-Zlib-1.42-1.fc6
perl-IO-Zlib-1.04-4.2.1
perl-Net-IP-1.25-2.fc6
perl-String-CRC32-1.4-2.fc6
perl-IO-Socket-SSL-1.01-1.fc6
perl-DBD-MySQL-3.0007-1.fc6
MySQL 関連の RPM
$ rpm -qa | grep -i mysql
mysql-server-5.0.27-1.fc6
mysql-5.0.27-1.fc6
mysql-devel-5.0.27-1.fc6
perl-DBD-MySQL-3.0007-1.fc6
cpan のアップデート (root にて作業)
# cpan
cpan[1]> install Bundle::CPAN
...
cpan[2]> reload
...
作業に必要なモジュールのインストール
- Task::Catalyst
- DBI
- DBIx::Class::Schema::Loader
- Bundle::LWP
- Catalyst::Helper::Model::DBIC::Schema
- Catalyst::Helper::View::TT
- Catalyst::Model::DBIC::Schema
- Catalyst::Plugin::Charsets::Japanese
- Catalyst::Plugin::FillInForm
- Catalyst::Plugin::Prototype
cpan[n]> install Task::Catalyst
...
cpan[n]> install DBI
...
cpan[n]> install DBIx::Class::Schema::Loader
...
cpan[n]> install Bundle::LWP
...
cpan[n]> install Catalyst::Helper::Model::DBIC::Schema
...
cpan[n]> install Catalyst::Helper::View::TT
...
cpan[n]> install Catalyst::Model::DBIC::Schema
...
cpan[n]> install Catalyst::Plugin::Charsets::Japanese
...
cpan[n]> install Catalyst::Plugin::FillInForm
...
cpan[n]> install Catalyst::Plugin::Prototype
...
Catalyst 作業環境の作成 (アプリケーション名は MyApp, Login も作ってみる.)
$ catalyst.pl MyApp
$ cd MyApp
$ script/myapp_create.pl controller Library::Login
$ script/myapp_server.pl
...

左の画像は,"http://localhost:3000/" をブラウザで確認したもの.
今回は以下のような関係で動作するように作成する.
| パス | 振舞い
|
|---|
| /catalysttest/testbookmark/ | トップページの表示
|
| /catalysttest/testbookmark/regist | 登録フォーム表示
|
| /catalysttest/testbookmark/delete | 削除確認画面表示
|
| /catalysttest/testbookmark/edit | 編集フォーム表示
|
| /catalysttest/testbookmark/regist_execute | 登録実行
|
| /catalysttest/testbookmark/delete_execute | 削除の実行
|
| /catalysttest/testbookmark/edit_execute | 編集の実行 |
"/catalysttest/" 以下の存在しない URI/URL を指定した場合にエラーを表示するために,以下のようなコードを MyApp/lib/MyApp/Controller/CatalystTest.pm へ追加する.
sub default : Private {
my ( $self, $c ) = @_;
$c->res->body( 'The requested page does not exist. \
Please check your URL. Thank you. - msi' );
}
/catalyst/testbookmark のアプリケーション環境の作成
$ cd MyApp
$ script/myapp_create.pl controller CatalystTest::testbookmark
...
$ ./script/myapp_create.pl model DBIC DBIC::Schema \
MyApp::CatalystTest::testbookmark::Schema
...
$ ./script/bookmark_create.pl view TT View::CatalystTest::testbookmark::TT
...
MySQL のテーブルを作成.
$ cat testbookmark-mysql-create.txt
create table testbookmark (
bookmark_id integer auto_increment primary key,
url varchar(255) ,
title varchar(255) ,
record_time timestamp ,
comment text
);
$ mysql test < testbookmark-mysql-create.txt
$ mysql test
...
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| testbookmark |
+----------------+
1 row in set (0.00 sec)
mysql> quit
Bye

ソースコードに必要なルーチン等を追加.
左の画像は完成したもの.
ここまでのソースコードはこちら.
以下は今までの記事です.