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が登場するため「あれ?ファイルがない...」となり、何時間も悩んでしまいました。。。