アーカイブ
Tyzohブログ - ikarashiさんのエントリ
 ikarashiさんのエントリ配信

2007/01/29
まとめ - Catalyst を使ってみる #008

執筆者: ikarashi (5:34 pm)
こんにちは,五十嵐です. 「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


ソースコードに必要なルーチン等を追加.
左の画像は完成したもの.

ここまでのソースコードはこちら

以下は今までの記事です.
ikarashiさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (7408)
Trackback is not accepted now.
印刷用ページ 友達に送る
 
投稿された内容の著作権はコメントの投稿者に帰属します。
サイト内検索
ブログ カレンダー
«  «  2008 3月  »  »
24 25 26 27 28 29 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5