Catalystでアプリケーションを作成した際に生成されるスケルトンについて
Catalystで新規のアプリケーションを作成すると次のようなスケルトンが生成される。
├── Changes ├── Makefile.PL ├── README ├── lib │ ├── MyApp │ │ ├── Controller │ │ │ └── Root.pm │ │ ├── Model │ │ └── View │ └── MyApp.pm ├── myapp.conf ├── myapp.psgi ├── root │ ├── favicon.ico │ └── static │ └── images │ ├── btn_120x50_built.png │ ├── btn_120x50_built_shadow.png │ ├── btn_120x50_powered.png │ ├── btn_120x50_powered_shadow.png │ ├── btn_88x31_built.png │ ├── btn_88x31_built_shadow.png │ ├── btn_88x31_powered.png │ ├── btn_88x31_powered_shadow.png │ └── catalyst_logo.png ├── script │ ├── myapp_cgi.pl │ ├── myapp_create.pl │ ├── myapp_fastcgi.pl │ ├── myapp_server.pl │ └── myapp_test.pl └── t ├── 01app.t ├── 02pod.t └── 03podcoverage.t
各ディレクトリがそれぞれどのような存在意義を持つかあやふやなまま何となく課題に取り組んでいる感が否めないので、ざっくばらんにまとめてみる。
・Changes
更新履歴ファイル。
・ Makefile.PL
ビルドファイル。ビルドとは、ソースコードファイルを独立したソフトウェア生成物に変換するコンピュータ上で実行されるプロセス、またはその結果のことである。 ビルドにおいて最も重要なのはコンパイルプロセスであり、ソースコードファイルを実行ファイルに変換する。
・README
READMEファイル。説明書。
・lib
モジュール(.pm)を格納するためのディレクトリ。
・lib/MyApp
アプリケーションのメインフォルダ。
・lib/MyApp/Controller
コントローラクラス。リクエストの受信からレスポンスの送信までを一手に管理するディレクトリ。
Model(実際のビジネスロジック)を呼び出すのも、その結果をView(ユーザーインターフェイス)に引き渡すのも、コントローラの役割である。
・lib/MyApp/Controller/Root.pm
ルートコントローラ。名前の通り、ルートパス「/」に関連づけられた特別なコントローラ。
・lib/MyApp/Model
モデルクラス。データベースへのアクセスなど、データの管理/操作を担当するコンポーネント。
・lib/MyApp/View
ビュークラス。ユーザーインターフェースとなる部分を担う。
アプリケーションにおいて最終的な出力を担当するコンポーネント。
標準的なHTMLページはもちろん、JSON、CSV、あるいは電子メールのような特殊なフォーマットまで自在に出力できるのが特徴。
・lib/MyApp.pm
アプリケーションクラス。アプリケーションクラスとは、アプリケーション共通の設定や使用するプラグインの登録などを行うためのクラス。
・myapp.conf
?
・myapp. psgi
?
・root
テンプレートや設定ファイル用のフォルダ。rootとは、枝分かれ構造の根の部分のことを指す。
・root/favicon.ico
Favicon。Faviconとはホームページのシンボル(アイコン)として使われる、画像ファイルのこと。
・root/static
静的ファイル用のフォルダ。
・root/static/images
画像用のフォルダ。
・script
ヘルパースクリプト。ヘルパースクリプトとは、モジュール(コントローラやビュー、モデル)の作成、開発サーバの起動を行うためのスクリプト。
・script/myapp_cgi.pl
CGI用のスクリプト。
・script/myapp_create.pl
モジュール、ビュー、コントローラを作成するスクリプト。
・script/myapp_fastcgi.pl
FastCGI用のスクリプト。
・script/myapp_server.pl
開発サーバ用のスクリプト。
・script/myapp_test.pl
コマンドラインからのテスト用スクリプト。
・t
テストスクリプト用のフォルダ。
・t/01app.t
テストスクリプト。
・t/02pod.t
テストスクリプト。
・t/03podcoverage.t
テストスクリプト。
上記のようにまとめることで各ディレクトリの意義は大まかに掴めたが、各ファイル内で書かれているコードの意味を理解できていないのでそちらの理解も着実に進めていく必要があるよね。
また後日ブログで更新します。