Arkのサンプルアプリケーション開発の第4回は、いわゆるscaffold、雛形作成です。
MyApp名をSimpleLinks::Webとして、デフォルトページの表示が行えるところまで行ってみましょう。
この辺りは、私のようなぺーぺーのブログ記事なんかよりも、開発者のtypesterさん(村瀬さん)ご本人による記事、"ついに出た!最新Perlフレームワーク「Ark」徹底解剖 第2回 Ark チュートリアル:基礎編"をご覧いただいた方が遙かに良いと思いますが、MyApp::WebのようなMyApp名を指定した際の留意点や、Windows環境(Strawberry Perl)での留意点なども簡単に補記しています。
MyApp名の定石
『モダンPerl入門』にもあるように、MyApp::Webという形でアプリケーションを命名することにします。MyApp::ValidateとMyApp::CLI::Validateなどという場当たり的なクラス構成を避けることが目的です。
いくら簡単なアプリケーションと言えど、どのようにそれが成長するかは開発者本人の予想を超えることがあるものです。さらに、シンプルにしなかったことによる弊害は殆ど全くありません。
ということで、その効用が今は分からない人であっても、「おまじない」のようなつもりでMyApp::Webとするのが良いと思います。
基本的な雛形
基本的な雛形の作成
さて、Arkの雛形作成機能を試しましょう。
$ ark.pl newapp SimpleLinks::Web
(中略)
Creating directory SimpleLinks-Web
Creating SimpleLinks-Web\Makefile.PL
Creating SimpleLinks-Web\lib\SimpleLinks\Web.pm
Creating SimpleLinks-Web\lib\SimpleLinks\Web\Controller\Root.pm
Creating directory SimpleLinks-Web\root
Creating SimpleLinks-Web\t\00_compile.t
Creating directory SimpleLinks-Web\tmp
このように、コマンド一発で、SimpleLinks-Webというディレクトリ内に基本的な雛形を作ってくれます。
ここで、必須ではありませんが、これをp5-ark-sample-simplelinksというディレクトリに変えます。githubで公開することを念頭に置いていることと、Arkのサンプルアプリであることを明示する意図があります。また、他言語のアプリケーションと被らないようにp5(perl 5)という接頭辞を付けています。
なお、ModelやViewについては、別途雛形を作成出来ますので、それは後述します。
また、Windowsの場合は、PATHが通っているディレクトリにark.plを変換したark.batが入っているので、ark newapp SimpleLinks::Webと実行します。
基本的な雛形の表示テスト
では、p5-ark-sample-simplelinksディレクトリに移動して開発用サーバーを動かしましょう。
$ cd p5-ark-sample-simplelinks
$ ark server -d
[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path | Private |
+-------------------------------------+--------------------------------------+
| / | /index |
| / | /default |
'-------------------------------------+--------------------------------------'
[debug] Setup finished
HTTP::Engine::Interface::ServerSimple : You can connect to your server at http://0.0.0.0:4423/
-dオプションによるデバッグモードは基本的にいつもONにしておくのが良いと思います。後から「あぁっ、ここの情報をもうちょっと知りたいんだ!」と思っても、稼働中のサーバーを一旦再起動するしかありませんので、転ばぬ先の杖として毎回使う癖を付けると良いと思います。
なお、Arkのバージョンによっては、SampleLinks::Webのように1階層間に挟んでいるMyApp名を、そのまま実行出来ない場合があります。その場合は、ark server -d SampleLinks::Webのように、アプリケーション名を明示的に指定することで回避可能です。GitHub上の最新のバージョンでは、アプリケーション名は明示しなくても問題なく実行出来ます。
さて、ともあれこれで組み込みWebサーバーにアクセスして表示出来ることが確認出来ます。

次回はModel
さて、いよいよ本題のモデリングです。Data::Modelを使って平易に書きつつ、Arkと連携して行きましょう。
コメントする