前回はArkを使用した開発方法と開発の一連の流れを説明しました。今回から2回に分けてより実用的なサンプルアプリケーションを作成しながら,
掲示板の概要
今回作成するアプリケーションは,
モデルとビュー
前回はコントローラだけしか使用しませんでした。今回はモデルとビューもすべて使用します。
Arkは,
モデル
モデルはアプリケーションのロジックを定義するクラスです。
上記の例ではデータベースやキャッシュ周りのモジュールをモデルとして使用するという例を挙げましたが,
この方法は,
最近ではCatalystでもこの方法を推奨するようになってきていて,
このモデルの方法をサポートするために,
このクラスを使用すると,
package MyApp::Model::Cache
use Ark 'Model::Adaptor';
__PACKAGE__->config(
class => 'Cache::Memcached',
args => { servers => ['127.0.0.1:11211'] },
);
1;
このコードは Cache::Memcached をモデルとして使用する例です。こうするとコントローラから
$c->model('Cache')
でCache::Memcachedオブジェクトにアクセスできます。
この機能を使用し,
ビュー
ビューはWebアプリケーションの最終出力部分を司るクラスです。テンプレートエンジンを使用して出力するHTMLを作成したり,
こちらもモデルと同じようにアダプターを使用して外部モジュールに丸投げする,
現在のバージョンでは,
プラグイン
プラグインはセッション機能,
今回はログイン処理のために
- セッションプラグイン
- 認証プラグイン
を使用します。
アプリケーションの作成
それではアプリケーションを作っていきましょう。今回作るアプリケーションのソースコード全体はgithubに上げてありますので,
依存モジュール
今回作成するアプリケーションは,
- DBIx::Class::Schema::Loader
(DB接続に使用) - DBD::SQLite
(SQLiteデータベース) - Net::OpenID::Consumer
(OpenID認証に使用) - LWPx::ParanoidAgent
(OpenID認証に使用) - DateTime
(日付データに使用)
作業を進める前にこれらのモジュールをインストールしてください。