読者です 読者をやめる 読者になる 読者になる

localdisk

PHP とか Java とか Web とか好きなことを書きます。

Laravel 5 はこう変わる! ディレクトリ構造編

注意!

このエントリは 2014/09/30 時点の情報です。これからどんどん変わっていく可能性があるので鵜呑みはダメ、絶対。

はじめに

Laravel 5 は現在絶賛開発中で現行の 4.2.9 と比較するとかなり大きく変更されます。11月にリリース予定ですが、その前に先取りして主な変更点を何回かにわけてブログに書き残しておこうと思います。

一応 PHP カンファレンスが始まる前には書き終わりたいと思っていますが、我慢できない人は What's New in Laravel 5.0 のスクリーンキャストを見るとよくわかります。

Laravel5 のインストール

Composer でインストールできます。

composer create-project laravel/laravel forder-name dev-develop

ディレクトリ構造

かなり変わりました。軽く解説していきます。tree 構造はこちら。

root.
├── app
│   ├── Console
│   ├── Http
│   │   ├── Controllers
│   │   ├── Filters
│   │   └── Requests
│   └── Providers
├── bootstrap
├── config
│   ├── local
│   ├── packages
│   └── testing
├── database
│   ├── migrations
│   └── seeds
├── public
│   └── packages
├── resources
│   ├── lang
│   │   └── en
│   └── views
│       └── emails
│           └── auth
├── storage
│   ├── cache
│   ├── logs
│   ├── meta
│   ├── sessions
│   ├── views
│   └── work
├── tests
└── vendor

Laravel4 との対比はこんな感じ。

Laravel4 Laravel5
app/commands app/Console
app/config config
app/controllers app/Http/Controllers
app/database database
app/lang resources/lang
app/models app
app/start ない
app/storage storage
app/tests tests
app/views resources/virews
app/filters.php 廃止(app/Providers/FilterServiceProviderに定義)
app/routes.php app/Http/routes.php
bootstrap bootstrap
public public


大きな変更点として app 周りがガラッと変わっています。これ、ディレクトリ構造だけではなくて Laravel4 では 自作するController/Model/Command名前空間の修飾を必要としませんでしたが*1 Laravel5 からは名前空間は必須となります。手数が増えるかわりに自由度が上がった感じでしょうか。個人的には歓迎しています。

個人的には Modelapp の下にあるのがもにょりますが、自由に変更できるので、まぁいいかと。

ちょっとした注意点

  • sqlite ファイルが変更になりました。
Laravel4 Laravel5
app/database/production.sqlite storage/database.sqlite(ファイルはないので作る必要があります)
  • global.php はなくなりました。
    • 次回説明しますが、ServiceProvider が全面にでてきたのであんまり困らないと思います。

次回は、ServiceProvider と FormRequest の話を書きます。

*1:composer.json の classmap