Laravel インストールでバージョンを指定するときの注意点
Laravel
でバージョンを指定してインストールするとき、例えば5.1.X
をインストールする場合は以下のようなコマンドでインストールします。
composer create-project laravel/laravel blog "5.1.*"
上記のコマンドを実行すると、以下のログが出力され、5.1.33
がインストールされていることがわかります。
Installing laravel/laravel (v5.1.33)
インストール後にphp artisan -V
でバージョンを確認すると、Laravel Framework version 5.1.44 (LTS)
と表示され、最新のバージョンにアップデートされていることがわかります。
しかし、インストールのコマンドを以下のようにしてしまうと、少し動きが変わってしまいます。
composer create-project laravel/laravel blog 5.1
上記のコマンドを実行すると、以下のログが出力され、5.1.0
がインストールされていることがわかります。
Installing laravel/laravel (v5.1.0)
同じように、インストール後にバージョンを確認すると5.1.44
と表示され、最新のバージョンにアップデートされていることがわかります。
注意点
上記2つの違いで何が問題になるのかというと、後者の方法だと5.1.11
で追加された「認可」と「ポリシー」がデフォルトでは使えないということです。
公式ドキュメントの5.1.11
へのアップグレードにしたがってファイルを作成すれば問題ないとは思いますが、app/Policies
ディレクトリがなかったり、AuthServiceProvider
が作成されていないので、自分で作成しなければなりません。
おそらく5.1.11
のマイナーバージョンのアップデートではAuthServiceProvider
などのファイルの作成は任意なので、5.1.0
から5.1.44
にアップデートする場合はAuthServiceProvider
などのファイルは作成されないのだと思います。
「認可」の実装をするときに、ネット上のサンプルでは当たり前のようにAuthServiceProvider
が登場するため「あれ?ファイルがない...」となり、何時間も悩んでしまいました。。。