keisyuのブログ

最近めっきりエンジニアリングしなくなった厄年のおじさんがIT技術をリハビリするブログ。

Amon2 (PSGI フレームワーク)

先日PSGIアプリケーションの基本を触ってみたので ( まずはperlbrew や cpanm と carton とか。 - keisyuのブログ ) Webアプリっぽいのを作ってみる。
今は素でアプリを作ることはほとんどなくどの言語でもフレームワークを使うことが多いのですが、私は重量級のフレームワークはどうしても好きになれないので
PerlPSGIサポートの軽量級のフレームワークをと探してみたら Amon2 - Amon2 - Web application framework for Rapid web development がその一つだということで使ってみることにする。

インストールは cpanm を利用して以下のコマンド一発でOKです。

$ cpanm Amon2

インストールが終わったらAmon2のアプリケーションのひな形を作る amon2-setup.pl のコマンドがインストールされます。--flavor というオプションでひな形のタイプが選択できるようで標準で色々あるようです。

% amon2-setup.pl
Usage:
        % amon2-setup.pl MyApp

            --flavor=Basic      basic flavour (default)
            --flavor=Lite       Amon2::Lite flavour (need to install)
            --flavor=Minimum    minimalistic flavour for benchmarking
            --flavor=Standalone CPAN uploadable web application(EXPERIMENTAL)

            --vc=Git         setup the git repository (default)

            --list-flavors (or -l) Shows the list of flavors installed

            --help   Show this help

で私は書いたようにあんまり色々自動で作られるのが好きじゃないので --flavor=Lite ってのをまず試してみようと思います。need to install とあるのでインストールしてセットップしてみる. Amon2::Setup::Flavor::Lite - search.cpan.org

$ cpanm Amon2::Setup::Flavor::Lite
$ amon2-setup.pl --flavor=Lite MyApp
$ find MyApp | grep -v .git
MyApp
MyApp/app.psgi
MyApp/Makefile.PL
MyApp/t
MyApp/t/01_root.t
MyApp/t/Util.pm
MyApp/xt
MyApp/xt/03_pod.t

作られた。(こんだけ...思ってた以上に少ない...).
とりあえず何も編集せずに起動してみる.
f:id:keisyu:20140215191353j:plain
こんなシンプルな画面が立ち上がりました。なんとなく --flavor=Basic も試してみたくなったのでやってみると

$ carton install
$ carton exec perl -Ilib script/myapp2-server

こういう手順で起動しなさいと出た。Basic だと色んなモジュールが必要だけど cpanfile 作っといたので各自 carton 環境下で動かしなさいということか.

f:id:keisyu:20140215193651j:plain

起動した。何もしていないに等しいけど今日はここまで。