概要: kayac 謹製 Web Application framework の Ark に入門してみた
こんにちま、いつも心に Segmentation fault、悪い意味でプログラミングが恋人、 にゃるらこと岡村直樹(もうすぐ 23 歳)です。みなさん hack してますか?
まあいつものユヤタンパロディはいいとして、この度なんとなく Perl で Web Application を書きたくなったので、
というわけで、今日は Ark のさわりというか、hello world
を書いてみるよ!
Ark
とは何か?
まず、最初、Ark
とは kayac の @typester さんが中心となって作成されている、
- Catalyst like な Web Application framework です。
Catalyst
は 2011-02-12 現在、Moose ベースな framework となっていますが、
それに対しArk
はAny::Moose
ベースな framework になっています。
なんで、Any::Moose
でMouse
を使うようにし、ロードが重いモジュールを極力使わないようにすれば、
おそらくCGI
環境でもそれなりに動作させられる framework だと思われます。
今のところArk
は full stack framework ではなく、必要最低限のモジュールのみが実装されているので、
込み入った事をしようとすると自分でモジュールを実装する必要がありますが、
拡張はしやすいように実装されているので、そうは困らないかと思います。
まあArk
の説明はこれくらいにして、次はArk
のインストールの解説に行きたいと思います。
Ark
のインストール
Path::AttrRouter
のインストール
Ark
は typester さん作のPath::AttrRouter
に依存していて、
このPath::AttrRouter
は CPAN に upload されてないので、
typester さんのリポジトリから直接Path::AttrRouter
をインストールする必要があります。
で、以前ならば、
$ cpanm http://github.com/typester/Path-AttrRouter/tarball/master
でインストール出来たっぽいんですが、今は github の仕様が変わり、
cpanm
を使ってダイレクトにインストールができないんで、
一旦 tar ball を落としてきて、そこからインストールします。
$ mkdir -p ~/tmp/path-attrrouter && cd ~/tmp/path-attrrouter $ wget --no-check-certificate https://github.com/typester/Path-AttrRouter/tarball/master $ cpanm -v ~/tmp/path-attrrouter/master
で、必要なライブラリがそろっているなら、上記でインストールできますが、 はいっていない場合には、とりあえず下記をインストールします。
$ cpanm -v Module::Install $ cpanm -v Module::Install::TestBase $ cpanm -v Module::Install::Repository $ cpanm -v Module::Install::AuthorTests
で、インストールが終わったら、次にArk
のインストールに行きます。
Ark
のインストール
必要なライブラリさえはいっていれば、Ark
のインストールは割と簡単に行きます。
$ mkdir -p ~/tmp/ark && cd ~/tmp/ark $ wget --no-check-certificate https://github.com/typester/ark-perl/tarball/master $ cpanm -v ~/tmp/ark/master
で、インストールが終わったら、次はいよいよhello world
です。
Hello world!
in Ark
Ark
を使った Web Application で最低限必要になるのは、
app.psgi lib/MyApp.pm lib/MyApp/Controller/Root.pm
の三つです。他にもいろいろモジュールは使えるんですが、
とりあえず今回はシンプルなhello world
のみにとどめておきます。
で、先程述べた三つのファイルは大体こんな感じ。
app.psgi
use strict; use warnings; use MyApp; my $app = MyApp->new; $app->setup; $app->handler;
lib/MyApp.pm
package MyApp; use strict; use Ark; our $VERSION = '0.0001'; 1;
lib/MyApp/Controller/Root.pm
package MyApp::Controller::Root; use strict; use Ark 'Controller'; has '+namespace' => default => q{}; sub default :Path :Args { my ( $self, $c ) = @_; $c->res->status(200); $c->res->body('Hello world!'); } __PACKAGE__->meta->make_immutable;
で、この三つを適当はディレクトリに適切に配置した後、
plackup
を使って、
$ plackup -I lib app.psgi
という感じで実行します。
そうするとlocalhost:5000
でアクセスできるようになるので、
任意のブラウザでlocalhost:5000
を開けば、
hello world!
と表示されます。
以上で終了です
というわけで、以上がArk
を使ってhello world
するまでの道のりでした。
まあ正直言って、僕も昨日Ark
を導入して触り始めたばっかりなんで、
細かいところはサッパリ分かってませんが、とりあえずhello world!
はこんな感じです。
ま、Ark
を使った Web Application はこれからArk
について調べながら作っていく、
という感じになると思いますが、Ark
を使った実例については、
- Google Code Search で
use Ark;
と検索するといくつか出てくるんで、 それを見ながら作ってみると理解が深まるかもしれません。
というわけで、今日はArk
でhello world!
してみるまでの道のりの話でした。