Laravel3のファイル構成(その2)
タグ: Laravel3
その1ではトップフォルダーとapplicationフォルダーの説明をしました。今回はその続きです。
bundlesフォルダーの構成
このフォルダーの下にバンドルが入ります。Laravelのサイトに登録されているバンドルであれば、Artisanコマンドでインストールできます。その場合、このフォルダー内にインストールしたバンドルのフォルダーが追加されます。
コマンドを使用しなくても、自分でダウンロードし、フォルダーをこの場所へコピーすることでもインストール可能です。
ただし、インストールしても有効になりません。application/bundles.php
を開き、設定を書き込みます。
laravelフォルダーの構成
これはコアです。Laravelフレームワークの本体です。
クラス名とファイル名は一致しているため、コードを読むために探すのは手間がかかりません。ただし、DB、Session、Cache、Authクラスは設定により、動作するクラスを切り換えるドライバーシステムを採用しているため、複雑になっています。Routeクラスも入り込んでいます。
Laravelのコアクラスは\Laravelの名前空間下を使用します。ヘルパー関数は名前空間はついていません。
ただし、クラスを使用するために長々名前空間を記述しなくても良いように、短縮名が予め登録されています。短縮名は自由に変更できるようにconfig/application.php
で定義されています。
publicフォルダーの構成
Web公開フォルダーです。
css、js、imgはその名の通りのファイルを入れておくためのフォルダーとして用意されていますが、変更しても構いません。自分で好きな生をつけることもサブフォルダーを使用し構成しても構いません。自由です。
laravelフォルダーはlaravelがデモで使用しているcss、js、imgを入れているフォルダーです。もちろん変更、削除しても構いません。
唯一、変更してはいけないものがbundles
です。このフォルダーはバンドルにより使用されるcss、js、imgがそのバンドル名のフォルダー下に設置されています。仕組みは単純で、各バンドルにはpublicフォルダーを含めることができ、そのフォルダーの中身はphp artisan bundle:publish
コマンドの実行で、一斉に全バンドルのpublicフォルダーの内容を、バンドル名のフォルダー下にコピーします。
storageフォルダーの構成
Laravelによりファイルの保存場所です。必ずパーミッションを点検し、Webサーバーから書き込み可能にする必要があります。
cache
Cacheクラスを利用し、保存したキャッシュの内容が保存されます。Cacheクラスは保存先を変更可能です。ドライバーにfile
を指定した場合のみ、使用されます。database
SQLiteを使用した場合のDB保存場所です。データベースのドライバーにsqliteを指定した場合のみ、使用されます。logs
日付ごとに分けられたログの保管場所です。ログの内容はLogクラスにより書き出されたものです。ただし、実際にファイルに書き出されるのは、設定ファイルapplication.php
でprofilerアイテムにfalseが指定されている場合のみです。trueにしている場合はページ下部のプロファイラーをクリックすることで、ログ出力を確認できるようになっています。sessions
Laravelのセッションの保存場所です。ドライバーにfile
を指定した場合のみ使用されます。views
Bladeテンプレートエンジンを使用した場合、その構文をPHPに変換した結果が保存されます。Bladeテンプレートを使用しても、毎回変換されるわけではなく、キャッシュ済みであれば、それが利用されます。もとのBladeを変更した場合のパージは自動で行われますので、ユーザーが操作する必要はありません。ただし、Bladeになれないうちは、変換エラーが発生した場合に、原因を突き止めるため、数回参照することになるでしょう。変換エラー時にはメッセージに変換したビュー名が表示されますので、それを元に確認してください。work
私が確認した限り、このフォルダーはバンドルのインストールやアップデートで使用される一時ファイルとして使用されます。通常、自動的にクリーンアップされますが、もしバンドルやアップデートが不可解なエラーを表示する場合は、このファイルの中におかしなファイルが存在していないかチェックしてください。