|
|
こんにちは,結城浩です。今回はPerlのWebアプリケーション・フレームワーク「Catalyst」を解説し,簡単なメモ帳プログラムを作ります。
Catalyst(カタリスト)は,Perlで作られたWebアプリケーション・フレームワークです。Catalystを使うと,Webアプリを簡単に作成・テスト・配布することができます。catalystという単語のそもそもの意味は,「触媒」あるいは「促進させるもの」です。Perlのモジュール同士を触媒のようにうまく結びつけて,Webアプリ作成を促進させるという意味の名前なのでしょう。
Catalystのオフィシャルページは,http://www.catalystframework.org/です*1。また開発者向けのページが,http://dev.catalyst.perl.org/にあります。
いうなればPerl on Rails
Webアプリケーション・フレームワークというと,最近はRubyの「Ruby on Rails」が流行しています。Catalystはいうなれば「Perl on Rails」です。実際,(1)ヘルパースクリプトを使ってプログラムのひな型を自動生成する,(2)複数のコントローラを持つことができる――など,CatalystはRuby on Railsと同様の機能を備えています。
Perlでなにかプログラムを作るとき,豊富なモジュールを保持しているCPAN*2の存在は欠かせません。CatalystはCPANに用意されているモジュールをうまく組み合わせて動きます。通常のPerlアプリケーションのようにCPANのモジュールを使うこともできますし,CatalystのMVC(すぐ後で説明)のコンポーネント(構成要素)として使えるCPANモジュールもたくさんあります。また,Catalystの機能を拡張するプラグインもCPANに多数あります。主なプラグインの一覧は,コマンドラインで
perldoc Catalyst::Manual::Plugins
として見ることができます。その一部を表1に示します。
表1●Catalystに関連する主なCPANモジュール |
||||||||||||||||||||||||||||||||||||||||||||
|
Catalystには組み込みのWebサーバーがありますから,ApacheなどのWebサーバーがなくても,すぐに動作を確かめることができます。
そのほかに,アプリが異常動作したときに現在の状態をWebページとして一覧表示してくれる機能や,デバッグ・プリントをサーバーのログとして出力する機能,さらには,作ったアプリケーションをロード時に解析して,プラグインの一覧,実行可能アクションの一覧などを自動的に表示してくれる機能もあります。
このように,CatalystはWebアプリケーションを作る際に毎回やらなければならないことを全部用意してくれるありがたい環境なのです。
Model-View-Controllerとは
Catalystはアプリケーションの構造として,Model-View-Controllerというパターンを採用しています。略してMVCと呼びます。MVCはアプリケーション作成のパターンで,アプリケーションをモデル(M)・ビュー(V)・コントローラ(C)の三要素に分解するものです。
モデルは,一言でいえばデータです。一般にはデータベースを想像すればよいですが,最近では,ほかのサイトからWebサービスを介して得られる情報もモデルとして考えられるでしょう。例えば,RSSフィード,Amazon APIの商品情報,Google APIの検索結果などを想像してください。これらのモデルは「ユーザーの目にどのように見えるか」とは無関係の,データそのものです。アプリケーションのうちモデルを担当するモジュールは,データベースの操作を行うのが普通です。
ビューは,一言でいえば見栄えです。WebアプリならばHTMLやCSSを想像すればよいでしょう。そのほかにもプレーンテキストとして表示したり,PDF形式にしたり,あるいは目には見えませんが,音による出力などもビューの担当になるでしょう。アプリケーションのうちビューを担当するモジュールは,情報のレイアウトや提示方法を処理します。
コントローラは,一言でいえば制御の流れです。コントローラはユーザーからの要求を元に,モデルと情報をやりとりし,それをビューに渡します。アプリケーションのうちコントローラを担当するモジュールには,アプリケーションの本質的な処理の流れが記述されます。
Catalystをインストールする
以下ではCatalystをインストールしてから,簡単なサンプル・プログラムを動かしてみます。ここで紹介するサンプル・プログラムは,日経ソフトウエアのWebサイト(http://software.nikkeibp.co.jp/)からダウンロードできます。以下のリンク「2006年9月号」を参照してください。
では,Catalystのインストールから始めましょう。筆者は,以下の環境からスタートしてCatalystをインストール+動作させました。
- Windows XP
- ActivePerl v5.8.8*3
まず必要なモジュールをダウンロードします。CPANを利用して,
perl -MCPAN -e 'install Task::Catalyst'
と入力すれば,Catalystの動作に必要なモジュールがそろいます。
SQLiteもインストールする
今回のサンプル・プログラムでは,データベースとしてSQLite*4を使います。まずCPANを利用して
perl -MCPAN -e 'install DBD::SQLite2'
として,SQLite2に接続するためのライブラリをインストールしてください。
加えて,コマンドライン版のSQLiteをhttp://www.sqlite.org/download.htmlからダウンロードしてインストールします。筆者はWindows用のプログラムとしてsqlite-2_8_17.zipをダウンロードしました。zipファイルを展開するとsqlite.exeがあるので,これをPATHの通ったディレクトリに置いておきます。
設置できたら,図1のようにして動作確認してください。コマンド「.help」で利用できるコマンドの一覧が表示され,「.exit」で終了します。
図1●SQliteがインストールできたかを確認する |