トップページ >  perl >  Perlのフレームワーク CatalystでHelloWorld
初版2012/03/23: 最終更新日2012/03/23
Perlのフレームワーク CatalystでHelloWorld
目次
概要
CatalystでWebアプリの雛形を作成する
CatalystのWebアプリを起動してみる
Hello World を表示する
概要
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のバージョンにより多少の差異があります)

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アプリケーションを作る事が可能です。