概要
PerlのWebアプリケーション用フレームワークであるCatalystを用いて、
/hello にアクセスした際に、「Hello World」と出力される実装をする。
CatalystにはWebアプリケーションの雛形を作成してくれるヘルパー機能が準備されており、
簡単にWebアプリケーションを作成する事が可能である。
また、Catalyst自体にWebサーバーの機能があるため、
Apacheなどをインストールせずに、Webアプリケーションの動作確認をする事ができる。
今回の環境はLinux上で環境構築している。
CatalystでWebアプリの雛形を作成する
Catalystのヘルパー機能を用いて、Webアプリケーションの雛形を作成します。
Webアプリケーションを作成したいディレクトリに移動してください。
例)
shell> cd /var/www
ヘルパースクリプトを実行した場所に、アプリケーションの雛形が作成されます。
ディレクトリに移動した後、下記のスクリプトを実行します。
shell> catalyst.pl MyWebApp
(MyWebApp は、適宜置き換えてください。
作成するWebアプリケーションの名前空間となり、指定した名前を元に雛形が作成されます)
実行すると、下記のような構成でファイルが作成されます。
これらがWebアプリケーションの雛形となります。
HelloWorld
|-- Changes
|-- Makefile.PL -- 作成したアプリケーションのパッケージや
| 配布に使用するためのスクリプトファイル
|-- README
|-- lib
| |-- HelloWorld
| | |-- Controller -- Controllerディレクトリ
| | | `-- Root.pm -- ルートControllerスクリプトファイル
| | |-- Model -- アプリケーションのModelを作成するモジュール置き場
| | `-- View -- アプリケーションのViewを作成するモジュール置き場
| `-- HelloWorld.pm -- モジュール本体
|-- HelloWorld.conf -- 設定ファイル
|-- root
| |-- favicon.ico
| `-- static -- 静的コンテンツを置くディレクトリ
|-- script -- ヘルパースクリプト用ディレクトリ
| |-- HelloWorld_cgi.pl
| |-- HelloWorld_create.pl
| |-- HelloWorld_fastcgi.pl
| |-- HelloWorld_server.pl
| `-- HelloWorld_test.pl
`-- t -- テスト用スクリプトディレクトリ
|-- 01app.t
|-- 02pod.t
`-- 03podcoverage.t
(※Catalystのバージョンにより多少の差異があります)
CatalystのWebアプリを起動してみる
Catalystは、他のWebサーバなどをインストールする必要なく、
雛形を作成した段階で、すぐに動作を確認する事が出来ます。
作成したWebアプリケーションのディレクトリへ移動します。
shell> cd MyWebAp
下記のスクリプトでCatalystサーバーを起動します。
shell> ./script/myapp_server.pl -r -p 8000
-r オプションをつける事で、ファイルの変更をしても
Catalystの再起動が必用なく動作確認を行えます。
-p [ポート番号] オプションをつける事で、任意のポートでWebアプリケーションを起動できます。
デフォルトは 3000番になっています。
起動すると下記のような画面が出ます。
ブラウザで
http://localhost:8000/
にアクセスしてみましょう。
(※Catalystのバージョンにより多少の差異があります)
この画面が出れば、Webアプリケーションは既に動いています。
Hello World を表示する
「http://localhost:8000/hello」にアクセスすると、「Hello World」が表示されるように実装してみましょう。
HelloWorld/lib/HelloWorld/Contoroller/Root.pm に実装します。
テキストエディタで上記のファイルを開きます。
ファイルの中に、下記のメソッドを追加します。
sub hello : Global {
my ($self, $c) = @_;
$c->response->body('Hello World');
}
Catalyst ではURLのパス「/hello」部分が、クラス内のメソッドにマッピングされており、
「sub hello」内に処理を記述する事で、機能を実装できます。
Catalystサーバーを「-r」オプションをつけて起動しているため、
ファイルを修正しても、再起動の必用はありません。
ブラウザで
http://localhost:8000/hello
へアクセスしてみてください。
Hello World
と表示されていると思います。
雛形をつくり、モジュールに少し処理を追加するだけで、
Catalystでは簡単にWebアプリケーションを作る事が可能です。