まえがきHabréにはほとんどありません。より正確には、CatalystのようなすばらしいMVCフレームワークに関する記事はまったくありません。 それで、最初の記事を彼に捧げることにしました。
ここでは、このフレームワークを習得するためのクイックスタートと呼ばれる単純なWebアプリケーションの例を使用して、Catalystで作業するための基本原則を説明しました。
はじめにCatalystは、PerlでWebアプリケーションを開発するための強力なMVCフレームワークです。
MVC(モデル/ビュー/コントローラー)について一言:
- モデル(Model)-それらを操作するためのデータとメソッドのみが含まれます。
- ビュー(ビュー)-このデータがどのように表示されるかを決定します。
- コントローラー(コントローラー)-システムとユーザー間の通信を制御し、アプリケーション中に必要な相互作用も制御します。
Catalyst-Perl Webアプリケーションの開発を促進する多数のCPANモジュールが含まれています。
このフレームワークを使用するシンプルさは何ですか?
新しいプロジェクトの作成を作成するプロセスは、コマンド
catalyst.pl Test::App
を使用して実行されます(プロジェクト名が「::」のディレクトリ内のファイルシステムでは、「-」に置き換えられます)。
このスクリプトは、Catalyst :: Helperという補助システムの一部であり、将来のアプリケーションに必要なスクリプト、フォルダー、テスト、ファイルなどを生成します。
作成されたプロジェクトの構造:
- / lib-プロジェクトの中心であり、Webアプリケーション向けのすべてのperlコードが含まれ、自動的に作成されたサブディレクトリで構成されます。
- テスト/アプリ/モデル-モデルを実装するモジュール用。
- テスト/アプリ/表示-...表示;
- テスト/アプリ/コントローラー-...コントローラー;
- Test / App / App.pm-Webアプリケーションをセットアップするためのモジュール。
- / root-Viewのテンプレートはここに保存され、必要なcss、js、images、一般にすべての静的データ。
- / script-ヘルパーによって自動的に作成されたスクリプトが含まれています。 それらは実行するために必要です:
- テストサーバー。
- 特定のURLをテストします。
- MVCコンポーネントの作成。
- CGI / FastCGIなどのスクリプトを実行します。
- など
- / t-テストを含む
- 変更-プロジェクトへの変更の履歴。
- Makefile.PL-アプリケーションのデプロイ時に必要なモジュールをインストールするためのサービス情報。
- test_app.conf-構成ファイル、ユーティリティ変数が指定されています(起動時の優先順位は、アプリケーション内の設定よりも高くなっています)。
- README-アプリケーションの起動、インストール、設定などに関する情報
適切なコマンドを使用して、必要なモデル/ビュー/コントローラーを追加します:
script/test_app_create.pl {model|view|controller} { }
TestApp.pmファイルの内容
package Test::App; use Moose; use namespace::autoclean; use Catalyst::Runtime 5.80; use Catalyst qw/ -Debug
ご覧のとおり、Catalystは、使用されているCPAN要素のオブジェクト表示にMooseモジュールを使用します。これにより、Perl言語のオブジェクトの処理が大幅に簡素化されます。
/ lib / Test / App / Controller /フォルダーにあるRoot.pmファイルは次のようになります。
ここで、このフレームワークを調査した後、簡単なWebアプリケーションを作成してみましょう。
1.
script/test_app_create.pl view Web TT
コマンドを使用してビューを作成します(
script/test_app_create.pl view Web TT
テンプレートツールキット、テンプレートエンジン、他のテンプレートエンジン、たとえばMasonも使用できます)
2.ルート/フォルダーにindex.ttファイルを作成します
次のコードを貼り付けます:
[% IF result %]<p>[% result %]</p> [% END %] <form name="hello" method=POST action="hello"> <input type="text" name="hi" value=""> <input type="submit" value="Do something!"> </form>
3. Root.pmファイルで、次の行を削除します。
$c->response->body( $c->welcome_message ); #
$c->response->body( $c->welcome_message ); #
4.そこで、helloメソッドを追加します。
sub hello :Local { my ($self, $c) = @ _; my $hi = $c->req->body_params->{hi}; $c->stash( result => $c->model('Hello')->hello($hi), template => 'index.tt', ); }
5.モデル
script/test_app_create.pl Model Hello
作成
script/test_app_create.pl Model Hello
script/test_app_create.pl Model Hello
6.作成されたモデルで、メソッドを記述します。
sub hello { my ($self, $hi) = @ _; return "Hello $hi!\n"; }
7.テストサーバー
script/test_app_server
実行します
8.ブラウザで、入力します
localhost:3000/
localhost:3000/
(デフォルトポート)
結果に感心します。
PSここでは、原則として、Catalystを使用する際の主なアイデアについて説明します。このフレームワークを知っている人々、つまり人々からのハブに関する記事がもっと欲しいです。 ドキュメントは確かに優れていますが、実際の経験は常に興味深いものです。
PPSこの記事を書いている間、真珠の魔法がなければできませんでした。 コードは、配列「@_」を使用します。これは、「_」という名前のhabrayuzerで真珠の言語を指定するときにタグに変換されます。@と_の間にスペースを入れる方法はありません。 注意してください...