omachizura

仕事メモ、役に立ったスキルをまとめています。


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