Perl (Mojolicious) を使って web アプリ開発に挑戦 (第8回 その2)
第8章 Mojolicious ベースにリファクタリングをする(その2)
前回はモデルロジック部分の切り離しをおこなってみました。 今回はテンプレート部分の切り離しを行なってゆきたいと思います。
そのまえに一つ紹介しておきたいのは metacpan サイトの Mojolicious の公式ドキュメントです
https://metacpan.org/pod/Mojolicious
こちらの中から Mojolicious::Guides::Growing にいくと
https://metacpan.org/pod/distribution/Mojolicious/lib/Mojolicious/Guides/Growing.pod
に今回紹介するテンプレートを切り離すやり方が紹介されています。
Mojolicious にはあらかじめテンプレートを切り離すための inflate コマンドが用意されています
8.2 テンプレート
Mojo の場合テンプレートの切り離しはコマンド一つで可能です。
8.2.1 inflate コマンド
% docker-compose exec web carton exec -- ./bulletin.pl inflate [mkdir] /usr/src/app/templates [write] /usr/src/app/templates/list.html.ep ... (templates ディレクトリが自動生成された)
8.2.2 テンプレートのディレクトリ構造
Mojo においては下記のようなディレクトリ構造で配置とすると自動的に テンプレートとして読み込みをおこなってくれます。
|- templates # 画面表示用テンプレート各種 | |- layouts # テンプレート共通画面 | | +- default.html.ep # デフォルトの共通画面 | +- create.html.ep # create コントローラー画面 | +- index.html.ep # index コントローラー画面 | +- list.html.ep # list コントローラー画面
8.2.3 旧テンプレ部分の修正
templates 配下にファイルが配置されるとそちらのテンプレファイルが優先 されてしまいますので、最初に書いていたテンプレート部分は削除しておきましょう。
bulletin.pl
# ... app->start; # __DATA__ 以下の部分は全て削除する
最後に念のためテストコード実行
% docker-compose exec web carton exec -- prove
8.2.4 まとめ
- 今回の内容は下記の github 参考資料でみれます。
- https://github.com/Becom-Developer/beginning-mojo/tree/master/chapter8/section2
8.2.5 次回
今回はテンプレート部分の切り離しをしました。
次回はコントローラー部分の切り離しをやってみたいと思います。
コメント
0 件のコメント :
コメントを投稿