September 6, 2014

Laravel4.3(5.0?)のディレクトリ構成の変更メモ

4.3でなく5.0にする案も出ているみたいですが、どうなるかよくわからないので、とりあえず4.3と呼びます。

近々、4.3を使う気がするので、ディレクトリ構成の変更について調べてみました。時期的に、4.3正式リリースの少し前になると思うんですが、4.2からのアップグレードは面倒そうなので、4.3でスタートした方が良いかなぁ。と。

https://laracasts.com/series/whats-new-in-laravel-4-3 の動画が大変参考になりました。

尚、4.3はまだ開発段階なので、多少は変わる結構変わる可能性もあると思います。

まず、appディレクトリ。
app
├── Console ... app/commands に相応
├── Http
│   ├── Controllers ... app/controllers に相応
│   ├── Filters ... app/filters.php で指定していたフィルタ処理のクラス群
│   ├── Requests ... 新機能。1リクエストに対するバリデーションルールや認証ロジック等を持つクラスを実装する
│   └── routes.php ... app/routes.php に相応
├── Providers ... グローバル空間で行われていた色々な処理がプロバイダとしてまとめられた
└── User.php ... app/models/User.php に相応
appディレクトリはcomposer.jsonのPSR-4で指定されています。
"psr-4": {
    "App\\": "app/"
}
名前空間プリフィックスである "App" が嫌な場合は "app:name" で変更できます。
$ php artisan app:name Foo
動画にもあるように app/Http/Requests に実装するクラスは、コントローラメソッドにインジェクションして使うと便利そうです。コントローラメソッドへのインジェクションも、4.3からの新機能です。

次に、その他のディレクトリ。
bootstrap
├── environment.php ... 環境を決める処理がここに切り出された

config ... app/config に相応
├── filesystems.php ... 4.3で新たに組み込まれたファイルシステムに対する設定
├── namespaces.php ... appディレクトリ以下のクラスに対して使用される名前空間の設定

database app/database ... に相応

resources
├── lang app/lang ... に相応
└── views app/views ... に相応

storage app/storage ... に相応

4.2までappディレクトリにあった多くのディレクトリがプロジェクトルートに移動されています。appディレクトリに作成するファイルは、基本的には、アプリケーションを動かすためのクラスのみ。となった感じですかね。

No comments:

Post a Comment