Catalyst本を買ったので、Catalystのサンプルを作ってみました。
インストールについては
こちら
(インストールが最難関かもしれない・・・)
サンプル
以下は作業手順
1. アプリケーションの作成準備
適当なディレクトリで次のコマンドを実行する。
catalyst.pl Bbs
Bbsディレクトリが作成され、その中に必要なファイルが作成されます。
以下、作業はBbsディレクトリで行います。
2. とりあえず動かしてみる
以下のコマンドを実行して、サーバーを起動する。
./script/bbs_server.pl -r -p 3001
http://localhost:3001/ でアクセスするとテストの画面が表示されます。
-p オプションを指定しないときは3000になります。
Firewallでポートが開いているか注意してください。
-r オプションを立てておくとファイルを修正するたびに自動的にサーバーがリスタートします。
3. DBの準備
SQLiteを使います。DB、テーブルを準備します。
ファイルは db/bbs.db にします。
CREATE TABLE bbs (
bbs_id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(40),
body VARCHAR(300),
timestamp TIMESTAMP DEFAULT '00000000000000'
);
CREATE INDEX idx1 ON bbs(timestamp);
4. lib/Bbs.pm にプラグインを追加
lib/Bbs.pm の use Catalyst qw/ ... /; のqw//の中に以下のプラグインを追加します。
・FillInForm
・Charsets::Japanese
・Prototype
5. lib/Bbs/Schema.pm ファイルを作成
ファイルの内容は以下の通り
package Bbs::Schema;
use strict;
use warnings;
use base qw/
DBIx::Class::Schema::Loader
/;
__PACKAGE__->loader_options(
# debug => 1,
);
1;
6. Schemaファイルを作成
以下のコマンドを実行します。
./script/bbs_create.pl model DBIC DBIC::Schema Bbs::Schema
7. Viewの作成
以下のコマンドを実行します。
./script/bbs_create.pl view TT TT
8. tmpl の作成
tmplはroot/tmpl以下に作成します。
root/tmplはデフォルトではないので mkdir で作成しておきます。
ファイルの内容はサンプルを参考にしてください。
9. Controllerの作成
lib/Bbs/Controller/Root.pmを修正します。
今回、名前の通りBBSなので、BBSの表示とコメントの投稿を実装します。
メソッドはindex、addを容易します。
これも内容についてはサンプルを参考にしてください。
10. YAMLの設定
bbs.conf を bbs.yml にリネームして、内容を修正します。
---
name: Bbs
Charsets::Japanese:
charsets: 'UTF-8'
View::TT:
INCLUDE_PATH:
- 'root/tmpl'
TEMPLATE_EXTENSION: '.tt'
Model::DBIC:
connect_info:
- 'dbi:SQLite:dbname=db/bbs.db'
- ''
- ''
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=nbjogger-22&o=9&p=8&l=as1&asins=4844328654&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>