kayacのArk入門 - Hello world for Ark-perl

読了まで:約3分


概要: kayac 謹製 Web Application framework の Ark に入門してみた


こんにちま、いつも心に Segmentation fault、悪い意味でプログラミングが恋人、 にゃるらこと岡村直樹(もうすぐ 23 歳)です。みなさん hack してますか?

まあいつものユヤタンパロディはいいとして、この度なんとなく Perl で Web Application を書きたくなったので、

  • kayac中心になって作成している Web Application framework、
  • Ark入門してみました。

いうわけで、今日は Ark のさわりというか、hello world書いてみるよ!

Arkとは何か?

まず、最初、Arkとは kayac の @typester さんが中心となって作成されている、

  • Catalyst like な Web Application framework です。

Catalyst 2011-02-12 現在、Moose ベースな framework となっていますが、 それに対しArkAny::Mooseベースな framework になっています。 なんで、Any::MooseMouse使うようにし、ロードが重いモジュールを極力使わないようにすれば、 おそらく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 Searchuse Ark;検索するといくつか出てくるんで、 それを見ながら作ってみると理解が深まるかもしれません。

いうわけで、今日はArkhello world!してみるまでの道のりの話でした。

#FIXME

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。