Bookmarkサンプルアプリケーション
サンプルとしてブックマークを登録するアプリケーションを作成します。
必要なモジュールのインストール
まずは、今回のサンプルとして必要になる、DBIx::Class::Schema::LoaderとCatalyst::Model::DBIC::Schemaをインストールします。
これらのモジュールをインストールするには、rootユーザーで次のコマンドを実行します。
# perl -MCPAN -e 'install DBIx::Class::Schema::Loader' # perl -MCPAN -e 'install Catalyst::Model::DBIC::Schema'
アプリケーションスケルトン作成
最初にブックマークアプリケーションを作成します。今回のサンプルではビューモジュールとしてCatalyst::View::TTを使用しますので併せてビューも作成します。また、コード類はすべてUTF-8で保存しています。
$ catalyst.pl Bookmark $ ./Bookmark/script/bookmark_create.pl view TT TT
データベース定義
このサンプルでは、データベースとしてSQLiteを使用します。SQLiteのドライバモジュールDBD::SQLiteはDBIx::Classインストール時に一緒にインストールされているので、他のデータベースに接続する場合には、別途ドライバをインストールする必要があります。
ブックマークデータベースには、URLのエントリ情報を登録するためのEntryテーブルを定義します。SQLは次のようになります。このSQL定義を「Bookmark/bookmark.sql」ファイルに保存します。
CREATE TABLE Entry ( id INTEGER PRIMARY KEY AUTOINCREMENT, url VARCHAR(256) NOT NULL, title VARCHAR(64) NOT NULL, counter INTEGER NOT NULL DEFAULT 0, comment TEXT );
Entryテーブルには次のカラムを定義しています。
| カラム名 | 説明 |
| id | ブックマークの主キーとなるID |
| url | 登録するURL |
| title | 登録するURLのタイトル |
| counter | Bookmarkアプリケーションからアクセスした回数 |
| comment | ブックマークのコメント |
次にsqlite3コマンドを使用して、データベースファイルを作成します。データベースファイルは「Bookmark/db/bookmark.db」に配置します。
$ mkdir ./Bookmark/db $ sqlite3 ./Bookmark/db/bookmark.db < ./Bookmark/bookmark.sql
Catalyst::Model::DBIC::Schemaを使用したモデルの作成
それでは、ブックマークデータベースに対応したモデルを作成してみましょう。モデルクラス名をBookmarkDB、スキーマクラスをBookmark::Schemaとして作成します。次のコマンドで作成します。
$ cd Bookmark $ ./script/bookmark_create.pl model BookmarkDB DBIC::Schema \ Bookmark::Schema create=static dbi:SQLite:./db/bookmark.db
このコマンドを実行すると、「Bookmark/lib/Bookmark」フォルダ以下に、次のファイルが作成されます。
| 作成されるモジュールファイル | 説明 |
| Model/BookmarkDB.pm | bookmark.dbへの接続情報を持ったモデルクラス |
| Schema.pm | DBIx::Class::Schemaを継承したスキーマクラス |
| Schema/Result/Entry.pm | Entryテーブルに対応するクラス |
