wata.dev

[まとめ] サンプルで覚える!Catalyst のおすすめエントリーまとめ

curry「オレも何か Web アプリを作ってモテモテになるかなぁ」といったときに便利なツールが perl の WAF (ウェブアプリケーションフレームワーク)である Catalyst 。僕は M(Model)V(View)C(Controller) の入門でした。しかしその独自の振る舞い等、慣れるまで最初はとっつきにくい感じもします。する。ということで、ここでは実際にサンプルを動かしてみながら覚えられるように、おすすめエントリーを段階別に集めてみました!

一応リンクのとなりに日付を加えておきましたが、過去のエントリが現在のそれと相違することがあるかもです。並行して Catalyst、その他の WAF など、最新情報も追っていくと良いと思います。

0. Task::Catalyst をインストール

cpan か cpanm で Catalyst に必要なモジュールが一式セットになった Task::Catalyst をインストールする。正直 Task::Catalyst のインストールだけで一日かかるかもだけどガンバ\(^o^)/

  • インストール
$ cpanm Task::Catalyst
  • ひな型作成
$ catalyst.pl MyApp
  • 付属サーバ起動(-d はデバッグモード、-r はリアルタイム更新)
$ cd MyApp
$ ./script/myapp_server.pl -d -r
  • モデル作成
$ ./script/MyApp_create.pl model MyApp
  • ビュー作成
$ ./script/myapp_create.pl view TT TT
  • コントローラ作成( root 以外に新たに追加するとき)
$ ./script/myapp_create.pl controller MyApp

1. Task::Catalyst のインストールが完了したら

▼Catalystの超簡単チュートリアル/楽 (2010/11/8)

兎にも角にも Hello, World! 。ここでは Catalyst 付属のサーバを起動させて、http://localhost:3000 にアクセス。Catalyst のかっこいいロゴ画面を確認。それからオリジナル“Hello, World!“画面作成。最後は動的にページを書き換える、というところまで解説してくれています。

2. http://localhost:3000/ にアクセス成功したら

▼Catalystで作る占いアプリ! - ゆーすけべー日記 (2010/7/2)

erogeek ことゆーすけべー氏が割と最近(一年近く前)のエントリで、実際に「占いアプリ」を作っていく形でわかりやすく流れを説明してくれています。MVC の理解も深まるはず。そしてもう立派な“アプリ”なわけ。まずは見よう見真似で進めていくと良いと思います。自分で作った占いアプリに不覚にも感動するはず。

3. データベースを使ってみる

▼[ThinkIT] 第1回:Catalystの導入 (1/2) (2006/9/7)

データベース(MySQL)を使ったブックマークアプリ。いきなり本格的になります。でもここでもちゃんとヘルパーが用意されています。自動で必要なファイルが生成され、シェルで SQL 文を発行するように、Catalyst アプリから自在に接続、読み込み、書き込み等の操作が可能になります。

  • データベースを使うモデル作成(Catalyst::Model::DBIC::Schema を使って MySQL で作成したテーブルをモデルにする場合)
$ ./script/myapp_create.pl model DBIC DBIC::Schema MyApp::Schema create=static dbi:mysql:[db_name] [user] [pass]

4. TT について知っておく

▼use Template; - 今日のCPANモジュール(跡地) (2007/2/25)
▼心は十五歳の少年漂流記 » Template-Toolkit ~基本編~ (2007/9/21)
▼Template Toolkit Manual -テンプレートツールキット和訳マニュアル-

最も使われているであろうテンプレートエンジン、Template::Toolkit。出来ることが多すぎて、コード側でやること、テンプレート側でやること、の棲み分けが難しいぐらい。。あと冨田さんが「今日のCPANモジュール」をまとめた書籍『Perl CPANモジュールガイド』もおすすめ!

5. Catalyst への理解を深める

▼Webアプリケーションフレームワーク「Catalyst」入門:CodeZine(コードジン) (2009/8/12〜)

『PerlフレームワークCatalyst完全入門』の著者でもある山田 祥寛さん監修の CodeZine での連載。2011年02月10日の更新で『初めてのCatalyst入門(13)』まで続いてます。サンプルを交えながら MVC の仕組み、モジュールの説明など、主要部分を網羅してます。サンプルを一通り試して、なんとなく分かってきたらここで理解を深めれば一層出来ることも広がるはず。

6. Catalyst アプリを mod_perl で運用する

▼Catalyst - 簡単なアプリケーションの開発 : tutorialog (2006/4/30)
▼catalyst [/dev/nullpo] (2010/1/28?)

付属のサーバを卒業する日が来たら、mod_perl で運用することを考えてみると良いと思います。なんでも Catalyst は mod_perl との組み合わせのときに最高のパフォーマンスを発揮できるようになっているようです。いずれのエントリもページ下部で mod_perl の設定方法を解説してくれています。といってもやることは簡単。Catalyst と Apache のつなぎ役をやってくれる Catalyst::Engine::Apache2::MP20 というモジュールをインストールして、httpd.conf に設定するだけ。「Catalyst + mod_perl」というエントリは調べると他にもいろいろ出てくるので自分に合った設定方法(バーチャルホストでとか)で調べてみると。

  • Catalyst::Engine::Apache2::MP20 インストール
$ cpanm Catalyst::Engine::Apache2::MP20

7. プラグイン

Catalyst はプラグインも豊富。以下必要になったタイミングで。
* 追記: 2011年現在 Catalyst のプラグインはあまり使わない方向みたいなので注意

  • ページャー

複数ページをまたぐときなど、「12345…次のページ>>|」みたいな感じで、勝手にいい感じにしてくれる。
▼Class::DBI::Pagerすげぇ便利 (Yusukebe::Tech) (2006/9/25)
▼Catalyst+DBIC+TT+Data::Page::Navigationでページング - とほほのN88-BASIC日記 (2008/10/6)

  • 文字化け対策

Catalyst はデフォルトで utf-8 フラグが付いていて、日本語を扱うとき一苦労するかもなので。これを読めば大抵解決するはず。
▼続:Catalystでマルチバイトを取り扱うときのまとめ - hide-k.net#blog (2009/2/9)

8. 関連エントリ

▼HK’s Technical Note (2006/10/23)
PostgreSQL を使った掲示板アプリを作る。

▼第4回 Catalyst(前編)—Perl向けWebアプリ・フレームワーク - 簡単実装で学ぶWeb技術:ITpro (日経ソフトウエア2006年9月号)
SQLite を使ったメモアプリを作る。

9. Catalyst でできたアプリ

amazlet
噂では Catalyst が使われているそう。違っていたらゴメンなさい。元はてな、現greeのnaoyaさんの言わずと知れた Amazon API を使ったサービス。Web API と組み合わせればこんなサービスが作れちゃう。

ボケて

先ほど登場したゆーすけべー氏が運営しているサービス。なんと Catalyst の Wikipedia のページに載ってましたw 他にも、最近Hokkaido.pmでも話されていましたが、氏が手がける多くのサービスで Catalyst を使っているそう。たぶんあのサービスも。

にげっと - ニコニコ動画をダウンロード!
なんと開発者自らソースを公開してくれてます。勉強になるなる。

他にもあったら教えてください!

enjoy!

ブログの記事一覧