5.5から、5.5.42へのアップグレード(セキュリティーリリース)Upgrading To 5.5.42 From 5.5 (Security Release)
Laravel5.5.42はセキュリティーリリースのため、すべてのユーザーに対して即時にアップグレードすることを推奨します。また、Laravel5.5.42はクッキーの暗号化とシリアライズに関するロジックに、互換性がない変更を含んでいるため、アプリケーションのアップグレード時に以降の注釈を注意深く読んでください。Laravel 5.5.42 is a security release of Laravel and is recommended as an immediate upgrade for all users. Laravel 5.5.42 also contains a breaking change to cookie encryption and serialization logic, so please read the following notes carefully when upgrading your application.
この脆弱性はアプリケーションの暗号化キー(APP_KEY
環境変数)が悪意のあるユーザーからアクセスされる場合にのみ悪用されます。 通常、アプリケーションのユーザーが、この値にアクセスできる可能性はありません。しかしながら、以前雇用していた人が暗号化キーにアクセスできていた場合、アプリケーションへ攻撃するためにこのキーを利用することができます。悪意のある人々の手に、暗号化キーが渡ったと信じるいかなる理由がある場合はいつでも、キーの値を変更すべきです。This vulnerability may only be exploited if your application encryption key (APP_KEY
environment variable) has been accessed by a malicious user. Typically, it is not possible for users of your application to gain access to this value. However, ex-employees that had access to the encryption key may be able to use the key to attack your applications. If you have any reason to believe your encryption key is in the hands of a malicious party, you should always rotate the key to a new value.
クッキーのシリアライズ化Cookie Serialization
Laravel5.5.42では、クッキー値のシリアライズ化/非シリアライズ化を無効にしました。その理由は、Laravelのすべてのクッキーは、暗号化し、署名してあり、クライアントによる改ざんに対し、通常安全であると考えられます。しかしながら、アプリケーションの暗号化キーが悪意のある人々の手に入れば、彼らは暗号化キーを使用しクッキー値を生成できます。アプリケーションの中の任意のクラスメソッドを呼び出すことなど、PHPオブジェクトのシリアライズ化/非シリアライズ化に継承される脆弱性を悪用できてしまいます。Laravel 5.5.42 disables all serialization / unserialization of cookie values. Since all Laravel cookies are encrypted and signed, cookie values are typically considered safe from client tampering. However, if your application's encryption key is in the hands of a malicious party, that party could craft cookie values using the encryption key and exploit vulnerabilities inherit to PHP object serialization / unserialization, such as calling arbitary class methods within your application.
すべてのクッキー値に対するシリアライズ化を無効にすることで、アプリケーションのセッションはすべて無効になり、ユーザーはアプリケーションに再ログインする必要が起きます。更に、アプリケーションで使用している他の暗号化クッキーの設定値が、無効になります。このため、カスタムクッキー値が、期待する値のリストと一致する事をバリデートするロジックをアプリケーションに追加する必要があるかも知れません。そうしない場合、全てを破棄することになります。Disabling serialization on all cookie values will invalidate all of your application's sessions and users will need to log into the application again. In addition, any other encrypted cookies your application is setting will have invalid values. For this reason, you may wish to add additional logic to your application to validate that your custom cookie values match an expected list of values you expect; otherwise, you should discard them.
クッキーのシリアライズ化の設定Configuring Cookie Serialization
アプリケーションの暗号化キーにアクセスできない場合、この脆弱性は悪用できないため、今回の変更に対してもアプリケーションの互換性を維持できるように、暗号化クッキーのシリアライズ化を最有効にする手段を提供します。クッキーのシリアライズ化を有効/無効にするには、App\Http\Middleware\EncryptCookies
ミドルウェアのserialize
スタティックプロパティを変更してください。Since this vulnerability is not able to be exploited without access to your application's encryption key, we have chosen to provide a way to re-enable encrypted cookie serialization while you make your application compatible with these changes. To enable / disable cookie serialization, you may change the static serialize
property of the App\Http\Middleware\EncryptCookies
middleware[https://github.com/laravel/laravel/blob/master/app/Http/Middleware/EncryptCookies.php]:
/**
* クッキーをシリアライズするかの指定
*
* @var bool
*/
protected static $serialize = true;
注意 暗号化されたクッキーのシリアライズ化を有効にし、暗号化キーが悪意のある他者からアクセスできる場合、攻撃される可能性のある脆弱性がアプリケーションに起きます。キーが悪意のある人々の手に入ったと確信できる場合は、暗号化されたクッキーのシリアライズを有効にする前に、キーを新しい値に変更すべきです。Note: When encrypted cookie serialization is enabled, your application will be vulnerable to attack if its encryption key is accessed by a malicious party. If you believe your key may be in the hands of a malicious party, you should rotate the key to a new value before enabling encrypted cookie serialization.
5.4から5.5.0へのアップグレードUpgrading To 5.5.0 From 5.4
アップデートの見積もり時間:1時間Estimated Upgrade Time: 1 Hour
Note: {note} We attempt to document every possible breaking change. Since some of these breaking changes are in obscure parts of the framework only a portion of these changes may actually affect your application.
私達は、互換性を失う可能性がある変更を全部ドキュメントにしようとしています。しかし、変更点のいくつかは、フレームワークの明確ではない部分で行われているため、一部の変更が実際にアプリケーションに影響を与えてしまう可能性があります。
PHPPHP
Laravel5.5では、PHP7.0.0以上が必要です。Laravel 5.5 requires PHP 7.0.0 or higher.
依存パッケージのアップデートUpdating Dependencies
composer.json
ファイル中の、laravel/framework
依存指定を5.5.*
へ変更してください。さらに、phpunit/phpunit
の依存指定を~6.0
へ更新してください。次に、composer.json
ファイルのrequire-dev
セクションに、filp/whoops
パッケージのバージョン~2.0
を追加します。最後に、composer.json
ファイルのscripts
セクションで、post-autoload-dump
イベントに対しpackage:discover
コマンドを追加します。Update your laravel/framework
dependency to 5.5.*
in your composer.json
file. In addition, you should update your phpunit/phpunit
dependency to ~6.0
. Next, add the filp/whoops
package with version ~2.0
to the require-dev
section of your composer.json
file. Finally, in the scripts
section of your composer.json
file, add the package:discover
command to the post-autoload-dump
event:
"scripts": {
...
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
],
}
laravel/browser-kit-testing
パッケージを使用している場合は、composer.json
ファイルの中で、パッケージのバージョンを2.*
へアップデートしてください。If you are using the laravel/browser-kit-testing
package, you should update the package to 2.*
in your composer.json
file.
もちろん、アプリケーションで使用しているサードパーティ製パッケージを調べ、Laravel5.5に適切なバージョンを使っていることも忘れず確認してください。Of course, don't forget to examine any 3rd party packages consumed by your application and verify you are using the proper version for Laravel 5.5 support.
LaravelインストーラLaravel Installer
">Tip!!
laravel new
を使い、Laravelインストーラによりインストールしている方は、composer global update
コマンドにより、インストーラパッケージを更新してください。{tip} If you commonly use the Laravel installer vialaravel new
, you should update your Laravel installer package using thecomposer global update
command.
Laravel DuskLaravel Dusk
Laravel5.5とヘッドレスChromeでのテストに対し互換性のある、Laravel Dusk 2.0.0
がリリースされました。Laravel Dusk 2.0.0
has been released to provide compatibility with Laravel 5.5 and headless Chrome testing.
PusherPusher
Pusherイベントブロードキャストドライバーは、Pusher SDKのバージョン~3.0
が必要となりました。The Pusher event broadcasting driver now requires version ~3.0
of the Pusher SDK.
Swift MailerSwift Mailer
Laravel5.5では、バージョン~6.0
のSwift Mailerが必要です。Laravel 5.5 requires version ~6.0
of Swift Mailer.
ArtisanArtisan
コマンドのオートロードAuto-Loading Commands
Laravel5.5では、カーネルへ一々登録しなくても、Artisanはコマンドを自動的に見つけ出します。この新機能を利用するには、以下の行をApp\Console\Kernel
クラスのcommands
メソッドに追加してください。In Laravel 5.5, Artisan can automatically discover commands so that you do not have to manually register them in your kernel. To take advantage of this new feature, you should add the following line to the commands
method of your App\Console\Kernel
class:
$this->load(__DIR__.'/Commands');
fire
メソッドThe fire
Method
Artisanコマンド中のfire
メソッドは、handle
へリネームしてください。Any fire
methods present on your Artisan commands should be renamed to handle
.
optimize
コマンドThe optimize
Command
最近のPHPのオペコードキャッシュの向上により、optimize
Artisanコマンドは必要なくなりました。将来のリリースでLaravelから削除されるため、デプロイスクリプトからこのコマンドを外してください。With recent improvements to PHP op-code caching, the optimize
Artisan command is no longer needed. You should remove any references to this command from your deployment scripts as it will be removed in a future release of Laravel.
認証Authorization
Note:
Laravel5.4から5.5へアップグレードすると、すべてのremember_me
クッキーは無効になり、ユーザーはログアウトされます。{note} When upgrading from Laravel 5.4 to 5.5, allremember_me
cookies will be rendered invalid and users will be logged out.
authorizeResource
コントローラメソッドThe authorizeResource
Controller Method
authorizeResource
メソッドへ複数の単語のモデル名を渡したとき、リソースコントローラの振る舞いと合わせるため、ルートセグメントは「スネーク」ケースになりました。When passing a multi-word model name to the authorizeResource
method, the resulting route segment will now be "snake" case, matching the behavior of resource controllers.
basic
とonceBasic
メソッドThe basic
and onceBasic
Methods
認証失敗時に、Auth::basic
とAuth::onceBasic
はResponse
を返すのではなく、\Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException
を投げるようになりました。デフォルトでは以前と同様に、クライアントへ401レスポンスを返します。カスタムレスポンスを返すためにAuth::basic
の返却値を調べたり、認証失敗時に他の振る舞いを実装していた場合は、代わりにUnauthorizedHttpException
を処理する、もしくはcatch
ブロックやアプリケーションの例外ハンドラ中で処理する必要があります。Auth::basic
and Auth::onceBasic
now throw \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException
rather than returning a Response
when authentication fails. By default, this will still result in a 401 response being sent to the client. However, if your application logic checked the return value of Auth::basic
in order to return a custom response or implement other behavior on authentication failure, you will now need to handle the UnauthorizedHttpException
instead, either in a catch
block or in your application's exception handler.
before
ポリシーメソッドThe before
Policy Method
ポリシークラスにチェックしようとするアビリティと一致するメソッドが含まれていない場合、before
メソッドは呼び出されなくなりました。The before
method of a policy class will not be called if the class doesn't contain a method matching the name of the ability being checked.
キャッシュCache
データベースドライバDatabase Driver
データベースキャッシュドライバを使用している場合、Laravel5.5へアップグレードしたアプリケーションを最初にデプロイする時に、php artisan cache:clear
を実行してください。If you are using the database cache driver, you should run php artisan cache:clear
when deploying your upgraded Laravel 5.5 application for the first time.
EloquentEloquent
belongsToMany
メソッドThe belongsToMany
Method
EloquentモデルのbelongsToMany
メソッドをオーバーライドしている場合、新しく追加された引数を反映するように、引数を更新してください。If you are overriding the belongsToMany
method on your Eloquent model, you should update your method signature to reflect the addition of new arguments:
/**
* 多対多リレーションの定義
*
* @param string $related
* @param string $table
* @param string $foreignPivotKey
* @param string $relatedPivotKey
* @param string $parentKey
* @param string $relatedKey
* @param string $relation
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function belongsToMany($related, $table = null, $foreignPivotKey = null,
$relatedPivotKey = null, $parentKey = null,
$relatedKey = null, $relation = null)
{
//
}
BelongsToMany getQualifiedRelatedKeyName
BelongsToMany getQualifiedRelatedKeyName
getQualifiedRelatedKeyName
メソッドは、getQualifiedRelatedPivotKeyName
へリネームされました。The getQualifiedRelatedKeyName
method has been renamed to getQualifiedRelatedPivotKeyName
.
BelongsToMany getQualifiedForeignKeyName
BelongsToMany getQualifiedForeignKeyName
getQualifiedForeignKeyName
メソッドは、getQualifiedForeignPivotKeyName
へリネームされました。The getQualifiedForeignKeyName
method has been renamed to getQualifiedForeignPivotKeyName
.
モデルのis
メソッドModel is
Method
Eloquentモデルのis
メソッドをオーバーライドしている場合、メソッドからModel
のタイプヒントを削除してください。これにより、is
メソッドがnull
を引数に取れるようになります。If you are overriding the is
method of your Eloquent model, you should remove the Model
type-hint from the method. This allows the is
method to receive null
as an argument:
/**
* 2つのモデルが同じIDで、同じテーブルに属しているか判定
*
* @param \Illuminate\Database\Eloquent\Model|null $model
* @return bool
*/
public function is($model)
{
//
}
モデルの$events
プロパティModel $events
Property
モデルの$events
プロパティを$dispatchesEvents
へリネームしてください。多くのユーザーがevents
リレーションを定義する必要がありましたが、古いプロパティ名と競合していたため、変更されました。The $events
property on your models should be renamed to $dispatchesEvents
. This change was made because of a high number of users needing to define an events
relationship, which caused a conflict with the old property name.
Pivotの$parent
プロパティPivot $parent
Property
Illuminate\Database\Eloquent\Relations\Pivot
クラスの$parent
protectedプロパティを$pivotParent
へ変更してください。The protected $parent
property on the Illuminate\Database\Eloquent\Relations\Pivot
class has been renamed to $pivotParent
.
リレーションのcreate
メソッドRelationship create
Methods
BelongsToMany
とHasOneOrMany
、MorphOneOrMany
クラスのcreate
メソッドは、$attributes
引数にデフォルト値を取るように変更されました。このメソッドをオーバーライドしている場合は、新しい定義に合わせて、引数を変更してください。The BelongsToMany
, HasOneOrMany
, and MorphOneOrMany
classes' create
methods have been modified to provide a default value for the $attributes
argument. If you are overriding these methods, you should update your signatures to match the new definition:
public function create(array $attributes = [])
{
//
}
モデルのソフトデリートSoft Deleted Models
モデルの「ソフトデリート」時に、モデルのexists
プロパティはtrue
のままになりました。When deleting a "soft deleted" model, the exists
property on the model will remain true
.
withCount
カラム形式withCount
Column Formatting
エイリアス使用時、withCount
メソッドは、結果のカラム名に自動的に_count
を付けなくなりました。たとえば、Laravel5.4ではクエリにbar_count
カラムが結果に追加されていました。When using an alias, the withCount
method will no longer automatically append _count
onto the resulting column name. For example, in Laravel 5.4, the following query would result in a bar_count
column being added to the query:
$users = User::withCount('foo as bar')->get();
しかし、Laravel5.5では、エイリアスは指定された通りに使用されます。結果のカラムに、_count
を付けたい場合は、エイリアスを定義する時に、明確にサフィックスを指定します。However, in Laravel 5.5, the alias will be used exactly as it is given. If you would like to append _count
to the resulting column, you must specify that suffix when defining the alias:
$users = User::withCount('foo as bar_count')->get();
モデルのメソッドと属性名Model Methods & Attribute Names
配列アクセスを使う場合に、モデルのプライベートプロパティがアクセスされることを防ぐため、属性やプロパティと同じ名前のモデルメソッドを使えなくなりました。配列アクセス($user['name']
)やdata_get
ヘルパ関数により、モデルの属性へアクセスすることで、これが起きると例外が発生します。To prevent accessing a model's private properties when using array access, it's no longer possible to have a model method with the same name as an attribute or property. Doing so will cause exceptions to be thrown when accessing the model's attributes via array access ($user['name']
) or the data_get
helper function.
例外フォーマットException Format
Laravel5.5では、バリデーション例外を含むすべての例外は、例外ハンドラによりHTTPレスポンスへ変換されています。更に、JSONバリデーションエラーのデフォルトフォーマットが変更されました。新しいフォーマットは、以下の規約にしたがっています。In Laravel 5.5, all exceptions, including validation exceptions, are converted into HTTP responses by the exception handler. In addition, the default format for JSON validation errors has changed. The new format conforms to the following convention:
{
"message": "The given data was invalid.",
"errors": {
"field-1": [
"Error 1",
"Error 2"
],
"field-2": [
"Error 1",
"Error 2"
],
}
}
Laraverl5.4のJSONエラーフォーマットをそのまま使用したい場合は、App\Exceptions\Handler
クラスへ以下のメソッドを追加してください。However, if you would like to maintain the Laravel 5.4 JSON error format, you may add the following method to your App\Exceptions\Handler
class:
use Illuminate\Validation\ValidationException;
/**
* バリデーション例外をJSONレスポンスへ変換
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Validation\ValidationException $exception
* @return \Illuminate\Http\JsonResponse
*/
protected function invalidJson($request, ValidationException $exception)
{
return response()->json($exception->errors(), $exception->status);
}
JSON認証試行JSON Authentication Attempts
この変更は、JSONで試みる認証のバリデーションエラーフォーマットにも影響を与えます。Laravel5.5では、上記で説明した新しいフォーマット規約に従い、JSON認証に失敗したエラーメッセージも送り返されます。This change also affects the validation error formatting for authentication attempts made over JSON. In Laravel 5.5, JSON authentication failures will return the error messages following the new formatting convention described above.
フォームRequestsの注意A Note On Form Requests
個別のフォームリクエストの、レスポンスフォーマットをカスタマイズしている場合、failedValidation
メソッドをオーバーライドし、カスタムレスポンスを含めたHttpResponseException
例外インスタンスを投げてください。If you were customizing the response format of an individual form request, you should now override the failedValidation
method of that form request, and throw an HttpResponseException
instance containing your custom response:
use Illuminate\Http\Exceptions\HttpResponseException;
/**
* バリデーション試行の失敗の処理
*
* @param \Illuminate\Contracts\Validation\Validator $validator
* @return void
*
* @throws \Illuminate\Validation\ValidationException
*/
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException(response()->json(..., 422));
}
ファイルシステムFilesystem
files
メソッドThe files
Method
Illuminate\Filesystem\Filesystem
クラスのfiles
メソッドは、$hidden
引数が追加され、allFiles
メソッドのようにSplFileInfo
オブジェクトの配列を返すようになりました。以前は、パス名の配列を返していました。新しい引数は以下の通りです。The files
method of the Illuminate\Filesystem\Filesystem
class has changed its signature to add the $hidden
argument and now returns an array of SplFileInfo
objects, similar to the allFiles
method. Previously, the files
method returned an array of string path names. The new signature is as follows:
public function files($directory, $hidden = false)
メールMail
未使用のパラメータUnused Parameters
Illuminate\Contracts\Mail\MailQueue
契約のqueue
とlater
メソッドから、未使用の$data
と$callback
引数が削除されました。The unused $data
and $callback
arguments were removed from the Illuminate\Contracts\Mail\MailQueue
contract's queue
and later
methods:
/**
* 送信する新しいメールメッセージをキュー
*
* @param string|array|MailableContract $view
* @param string $queue
* @return mixed
*/
public function queue($view, $queue = null);
/**
* (n)秒後に送信する新しいメールメッセージをキュー
*
* @param \DateTimeInterface|\DateInterval|int $delay
* @param string|array|MailableContract $view
* @param string $queue
* @return mixed
*/
public function later($delay, $view, $queue = null);
キューQueues
dispatch
ヘルパThe dispatch
Helper
即時に実行するジョブをディスパッチし、handle
メソッドから値を返す場合は、ジョブのディスパッチにdispatch_now
か、Bus::dispatchNow
メソッドを使用してください。If you would like to dispatch a job that runs immediately and returns a value from the handle
method, you should use the dispatch_now
or Bus::dispatchNow
method to dispatch the job:
use Illuminate\Support\Facades\Bus;
$value = dispatch_now(new Job);
$value = Bus::dispatchNow(new Job);
リクエストRequests
all
メソッドThe all
Method
Illuminate\Http\Request
のall
メソッドをオーバーライドしてる場合は、新しい$keys
引数の使用方法を反映してください。If you are overriding the all
method of the Illuminate\Http\Request
class, you should update your method signature to reflect the new $keys
argument:
/**
* リクエストの入力とファイルをすべて取得
*
* @param array|mixed $keys
* @return array
*/
public function all($keys = null)
{
//
}
has
メソッドThe has
Method
$request->has
メソッドは、入力が空文字列やnull
であってもtrue
を返すようになりました。以前のhas
の振る舞いを提供するため、新しい$request->filled
メソッドが追加されました。The $request->has
method will now return true
even if the input value is an empty string or null
. A new $request->filled
method has been added that provides the previous behavior of the has
method.
intersect
メソッドThe intersect
Method
intersect
メソッドは削除されました。この動作を模倣するため、$request->only
の引数で、array_filter
を使用してください。The intersect
method has been removed. You may replicate this behavior using array_filter
on a call to $request->only
:
return array_filter($request->only('foo'));
only
メソッドThe only
Method
only
メソッドはリクエストペイロードに実際に存在する属性のみの返すようになりました。only
メソッドの古い振る舞いを使いたい場合は、all
メソッドを代わりに使用してください。The only
method will now only return attributes that are actually present in the request payload. If you would like to preserve the old behavior of the only
method, you may use the all
method instead.
return $request->all('foo');
request()
ヘルパThe request()
Helper
request
ヘルパはネストしたキーを受け取らなくなりました。この振る舞いが必要であれば、リクエストのinput
メソッドを使用してください。The request
helper will no longer retrieve nested keys. If needed, you may use the input
method of the request to achieve this behavior:
return request()->input('filters.date');
テストTesting
認証のアサートAuthentication Assertions
いくつかの認証アサートは、フレームワークの他とより一貫性を持たせるため、名前を変更しました。Some authentication assertions were renamed for better consistency with the rest of the framework's assertions:
Mail FakeMail Fake
Mail
fakeをリクエスト中にMailableがキューされたことを判定するために使用しているなら、Mail::assertSent
の代わりにMail::assertQueued
を使用してください。この区別により、メールがバックグランド送信のためにキューされたが、リクエスト間では送られないことをアサートで指定できるようになりました。If you are using the Mail
fake to determine if a mailable was queued during a request, you should now use Mail::assertQueued
instead of Mail::assertSent
. This distinction allows you to specifically assert that the mail was queued for background sending and not sent during the request itself.
TinkerTinker
Laravel Tinkerはアプリケーションクラスを参照する際の、省略した名前空間をサポートするようになりました。この機能にはComposerクラスマップの最適化が必要であるため、composer.json
ファイルのconfig
セクションへ、optimize-autoloader
ディレクティブを追加する必要があります。Laravel Tinker now supports omitting namespaces when referring to your application classes. This feature requires an optimized Composer class-map, so you should add the optimize-autoloader
directive to the config
section of your composer.json
file:
"config": {
...
"optimize-autoloader": true
}
翻訳Translation
LoaderInterface
The LoaderInterface
Illuminate\Translation\LoaderInterface
インターフェイスは、Illuminate\Contracts\Translation\Loader
へ変更になりました。The Illuminate\Translation\LoaderInterface
interface has been moved to Illuminate\Contracts\Translation\Loader
.
バリデーションValidation
バリデータメソッドValidator Methods
バリデータの全バリデーションメソッドは、protected
からpublic
へ変更になりました。All of the validator's validation methods are now public
instead of protected
.
ビューViews
動的"with"変数名Dynamic "With" Variable Names
ビューと変数を共有するため、動的__call
メソッドが許されています。こうした変数は「キャメル」ケースとして自動的に使えるようになります。When allowing the dynamic __call
method to share variables with a view, these variables will automatically use "camel" case. For example, given the following:
return view('pool')->withMaximumVotes(100);
maximumVotes
変数へ、テンプレートから次のようにアクセスできます。The maximumVotes
variable may be accessed in the template like so:
{{ $maximumVotes }}
@php
Bladeディレクティブ@php
Blade Directive
@php
Bladeディレクティブは、インラインタグを引数に取らなくなりました。代わりにディレクティブを完全に記述してください。The @php
blade directive no longer accepts inline tags. Instead, use the full form of the directive:
@php
$teamMember = true;
@endphp
その他Miscellaneous
私達は皆さんへ、laravel/laravel
GitHubリポジトリで変更を確認することを勧めます。多くの変更は必須ではありませんが、皆さんのアプリケーションでは同期を取りたい変更もあることでしょう。そうした変更のいくつかは、このアップグレードガイドで取り扱っていますが、設定ファイルやコメントなどは載っていません。GitHub差分比較ツールで変更を簡単に確認できますので、自分にとってどの変更が重要であるかを洗い出せます。We also encourage you to view the changes in the laravel/laravel
GitHub repository[https://github.com/laravel/laravel]. While many of these changes are not required, you may wish to keep these files in sync with your application. Some of these changes will be covered in this upgrade guide, but others, such as changes to configuration files or comments, will not be. You can easily view the changes with the GitHub comparison tool[https://github.com/laravel/laravel/compare/5.4...5.5] and choose which updates are important to you.