Laravel3のファイル構成(その1)
タグ: Laravel3
Laravel3のファイル構造を解説している日本語ページが存在していないようですので軽く説明しておきます。
バンドルが基本
まず、Laravelのファイル構造を理解するには、バンドルが構成の基本となっていることを理解してください。
バンドルは拡張機能としても用意されています。それぞれが小さなアプリケーションと呼んでもよいでしょう。
applicaton/bundles
の中にあるフォルダーそれぞれが、一つのバンドルです。そして、application
フォルダー自体が、デフォルトとして扱われる特別なバンドルになっています。
トップフォルダーの構成
application
上記で説明したように、デフォルトのバンドルです。デフォルトとは様々な場所での呼び出しに、わざわざバンドル名を指定する必要がないこと、そしてLaravelが起動すると最初に呼び出されるバンドルであることを示しています。bundles
バンドルがフォルダーに分かれて入っています。インストールした直後はdocs
バンドルだけが用意されています。このバンドルは/docs
のURIにアクセスした場合に、コアに含まれているドキュメントを表示するようになっています。laravel
Laravelフレームワークのコアです。アップデートをする場合は、大抵このフォルダーを上書きするだけで済みます。このフォルダーに含まれているdocumentation
フォルダーはドキュメントでMarkdownで書かれています。ですから、そのまま読むことも可能です。(英語です。)もし、実機などで不必要であれば、削除可能です。public
LaravelのWeb公開フォルダーです。このフォルダーを仮想ホストのドキュメントルートとして指定することがグッドプラクティスとして推薦されています。storage
Laravelで使用されるファイルの置き場所です。その下にフォルダーが使用目的別に分かれています。このフォルダーはWebサーバーから読み書きできる用に設定する必要があります。Linuxであれば、chmod -R uo+rw storage
となります。artisan
Laravelのコマンドラインツールです。php artisan コマンド:サブコマンド 引数…
の形態で使用します。paths.php
その名の通り、Laravelのパスが定義されています。インストールした状態のディレクトリー構成から変更する場合、このファイルを編集し、重要なフォルダーのパスを指定する必要があります。変更しない場合、触る必要はありません。
applicationフォルダーの構成
config
設定ファイルです。動作環境により優先する設定が含まれているフォルダーを選択できる仕組みを持っています。他のフレームワークでもお馴染みですね。インストール状態ではサブフォルダーは用意されていません。controllers
コントローラーを置くフォルダーです。ファイルは英小文字で作成します。クラス名はファイル目の先頭一文字を大文字にし、_Controllerをつけた名前です。ディレクトリー構造を含む場合は下線で区切ります。language
多国語対応のための言語設定フォルダーです。言語別に分かれています。多言語対応だけでなく、バリデーションのメッセージが気に入らない場合も、自由に変更できます。日本語も含まれています。libraries
ライブラリィーを設置するフォルダーです。クラス名がファイル名の先頭一文字を大文字にしたものを付けてあるのでしたら、そのクラスはオートロードされます。ディレクトリー構造はクラス名を下線で区切るか、もしくはディレクトリーを名前空間で表現します。この規則に従わないライブラリーは自前でincludeする必要があります。migrations
LaravelはDBの生成や変更にマイグレーションシステムを使用しています。ただし、これを使用しなければLaravelが使用できないというわけではありません。models
モデルを定義するフォルダーです。ファイル名は英小文字です。クラス名はファイル名の先頭一文字を大文字にしたものです。ディレクトリー構造は下線で区切るか、もしくはディレクトリーを名前空間で表現します。tasks
Artisanコマンドラインを通じて起動する自作コマンドを保存する場所です。コマンドの作成も難しくはありません。tests
PHPUnitテストを利用するテストを入れておくフォルダーです。このフォルダー下に置かれた、ファイル名の最後が.test.phpのファイルはphp artisan test
コマンドにより、再帰的に探され、実行されます。テストにこのコマンドを使用しなければならないわけでありません。PHPUnitを直接使用したほうが柔軟で、多機能なテストが可能です。views
ビューを入れておくフォルダーです。ビューはクラスではありません。.php
もしくは.blade.php
の拡張子をもつファイルです。bundles.php
使用するバンドルを定義するPHPファイルです。インストールしてもここで定義しなければバンドルは有効になりません。routes.php
作成するアプリケーションのルーティング、つまり与えられたURIからどのクラスのどのメソッドを実行するかを定義します。その他、ルーティングに対するフィルターや色々なことを定義します。start.php
バンドルのスタートアップファイルです。このapplicationも一つのバンドルであることを思い出してください。エラー表示の制御やオートロードの設定などが定義されています。