Readouble

Laravel 5.5 アップグレードガイド

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 私達は、互換性を失う可能性がある変更を全部ドキュメントにしようとしています。しかし、変更点のいくつかは、フレームワークの明確ではない部分で行われているため、一部の変更が実際にアプリケーションに影響を与えてしまう可能性があります。{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

lightbulb">Tip!! laravel newを使い、Laravelインストーラによりインストールしている方は、composer global updateコマンドにより、インストーラパッケージを更新してください。{tip} If you commonly use the Laravel installer via laravel new, you should update your Laravel installer package using the composer 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: note Laravel5.4から5.5へアップグレードすると、すべてのremember_meクッキーは無効になり、ユーザーはログアウトされます。{note} When upgrading from Laravel 5.4 to 5.5, all remember_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.

basiconceBasicメソッドThe basic and onceBasic Methods

認証失敗時に、Auth::basicAuth::onceBasicResponseを返すのではなく、\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 getQualifiedRelatedKeyNameBelongsToMany getQualifiedRelatedKeyName

getQualifiedRelatedKeyNameメソッドは、getQualifiedRelatedPivotKeyNameへリネームされました。The getQualifiedRelatedKeyName method has been renamed to getQualifiedRelatedPivotKeyName.

BelongsToMany getQualifiedForeignKeyNameBelongsToMany 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

BelongsToManyHasOneOrManyMorphOneOrManyクラスの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契約のqueuelaterメソッドから、未使用の$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\Requestallメソッドをオーバーライドしてる場合は、新しい$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:

- `seeIsAuthenticated`は、`assertAuthenticated`へ変更 - `dontSeeIsAuthenticated`は、`assertGuest`へ変更 - `seeIsAuthenticatedAs`は、`assertAuthenticatedAs`へ変更 - `seeCredentials`は、`assertCredentials`へ変更 - `dontSeeCredentials`は、`assertInvalidCredentials`へ変更

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

LoaderInterfaceThe 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.

章選択

公式パッケージ

設定

明暗テーマ
light_mode
dark_mode
brightness_auto システム設定に合わせる
テーマ選択
photo_size_select_actual デフォルト
photo_size_select_actual モノクローム(白黒)
photo_size_select_actual Solarized風
photo_size_select_actual GitHub風(青ベース)
photo_size_select_actual Viva(黄緑ベース)
photo_size_select_actual Happy(紫ベース)
photo_size_select_actual Mint(緑ベース)
コードハイライトテーマ選択

明暗テーマごとに、コードハイライトのテーマを指定できます。

テーマ配色確認
スクリーン表示幅
640px
80%
90%
100%

768px以上の幅があるときのドキュメント部分表示幅です。

インデント
無し
1rem
2rem
3rem
原文確認
原文を全行表示
原文を一行ずつ表示
使用しない

※ 段落末のEボタンへカーソルオンで原文をPopupします。

Diff表示形式
色分けのみで区別
行頭の±で区別
削除線と追記で区別

※ [tl!…]形式の挿入削除行の表示形式です。

テストコード表示
両コード表示
Pestのみ表示
PHPUnitのみ表示
和文変換

対象文字列と置換文字列を半角スペースで区切ってください。(最大5組各10文字まで)

本文フォント

総称名以外はCSSと同様に、"〜"でエスケープしてください。

コードフォント

総称名以外はCSSと同様に、"〜"でエスケープしてください。

保存内容リセット

localStrageに保存してある設定項目をすべて削除し、デフォルト状態へ戻します。

ヘッダー項目移動

キーボード操作