Laravel3のファイル構成(その2)

タグ: Laravel3  

その1ではトップフォルダーとapplicationフォルダーの説明をしました。今回はその続きです。

参照:Laravel3のファイル構成(その1)

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 私が確認した限り、このフォルダーはバンドルのインストールやアップデートで使用される一時ファイルとして使用されます。通常、自動的にクリーンアップされますが、もしバンドルやアップデートが不可解なエラーを表示する場合は、このファイルの中におかしなファイルが存在していないかチェックしてください。