こんにちは、鈴木です。
前回は Yesod のインストールから起動まで行いました。
今回は、作成したプロジェクトのディレクトリ構成を確認し、全体を把握したいと思います。
プロジェクトの作成
プロジェクトの作成方法は前回と同じですが、簡単におさらいしておきましょう。
プロジェクトを作成するときは、以下のコマンドを実行します。
1 |
yesod init |
コマンドを実行すると、プロジェクト名と使用するデータベースの種類を聞かれます。
ここではプロジェクト名を「hello-yesod」、データベースは適当なもので良いのですが、ここでは「simple」(データベース無し)を指定したものとして進めます。
プロジェクトの作成が完了したら、作成されたディレクトリに移動し、依存パッケージをインストールします。
1 2 |
cd hello-yesod cabal install |
次にサーバを起動します。
1 |
yesod devel |
デフォルトでは 3000 ポートをリッスンするので、ブラウザで http://localhost:3000 にアクセスできます。
Enter を入力するとサーバは終了します。
ここまでが前回のおさらいです。
ディレクトリ構造
まずはどのようなディレクトリ構成になっているのか、生成されたファイルを眺めてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Application.hs Foundation.hs Handler/ Import.hs Settings/ Settings.hs app/ config/ deploy/ devel.hs dist/ hello-yesod.cabal messages/ static/ templates/ tests/ yesod-devel/ |
いくつか重要そうなファイルを見ていきます。
Handler/
MVC (Model-View-Controller) でいうところの Controller に相当するファイルを置く場所です。
Settings.hs, Settings/
アプリケーションの設定に関するファイルです。
app/main.hs
このファイルの中で main 関数 (エントリポイントとなる関数) が定義されていました。
config/routes
ルーティング情報を記述するファイルであり、config/routes で定義した内容に従って Handler が呼び出されます。
config/settings.yml
実行モードごとの設定です。以下の内容が記述されていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Default: &defaults host: "*4" # any IPv4 host port: 3000 approot: "http://localhost:3000" copyright: Insert copyright statement here #analytics: UA-YOURCODE Development: <<: *defaults Testing: <<: *defaults Staging: <<: *defaults Production: #approot: "http://www.example.com" <<: *defaults |
Development, Testing, Staging, Production の 4 つが定義されています。
config/keter.yml
keter が何かを知らなかったので調べたところ、Yesod 用のデプロイシステムのようです。その設定ファイルということですね。
devel.hs
「yesod devel」を実行した時に、このコードが動いているようです。
messages/
ロケールごとのメッセージファイルを置く場所です。
static/
画像や CSS など、動的に生成しないファイルを置く場所です。
templates/
HTML や Javascript, CSS などの元となるテンプレートファイルを置く場所です。
HTML は Hamlet、CSS は Cassius または Lucius、Javascript は Julius で書くようです。
test/
テストコードを置く場所です。
まとめ
ディレクトリ構造を確認したことで、何となく全体像が見えてきた気がします。
一方で、知らないことも沢山見えてきたので、これから調べていこうと思います。