Readouble

Laravel 7.x HTTPリクエスト

リクエストの取得Accessing The Request

依存注入により、現在のHTTPリクエストインスタンスを取得するには、タイプヒントでIlluminate\Http\Requestクラスをコントローラメソッドに指定します。現在のリクエストインスタンスが、サービスプロバイダにより、自動的に注入されます。To obtain an instance of the current HTTP request via dependency injection, you should type-hint the Illuminate\Http\Request class on your controller method. The incoming request instance will automatically be injected by the service container[/docs/{{version}}/container]:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * 新しいユーザーを保存
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $name = $request->input('name');

        //
    }
}

依存注入とルートパラメータDependency Injection & Route Parameters

もし、コントローラメソッドでルートパラメーターも併用したい場合は、依存の指定の後にルート引数を続けてリストしてください。たとえば次のようにルートを定義している場合:If your controller method is also expecting input from a route parameter you should list your route parameters after your other dependencies. For example, if your route is defined like so:

Route::put('user/{id}', 'UserController@update');

次のようにコントローラメソッドの中で、まずタイプヒントでIlluminate\Http\Requestを指定し、それからルートパラメーターのidへアクセスします。You may still type-hint the Illuminate\Http\Request and access your route parameter id by defining your controller method as follows:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * 指定したユーザーの更新
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }
}

ルートクロージャでのリクエスト取得Accessing The Request Via Route Closures

ルートクロージャでもIlluminate\Http\Requestをタイプヒントで指定できます。そのルートが実行されると、送信されてきたリクエストをサービスコンテナが自動的にクロージャへ渡します。You may also type-hint the Illuminate\Http\Request class on a route Closure. The service container will automatically inject the incoming request into the Closure when it is executed:

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {
    //
});

リクエストパスとメソッドRequest Path & Method

Illuminate\Http\Requestインスタンスは、Symfony\Component\HttpFoundation\Requestクラスを拡張しており、HTTPリクエストを調べるために数多くのメソッドを提供しています。提供されている便利なメソッドをいくつか紹介しましょう。The Illuminate\Http\Request instance provides a variety of methods for examining the HTTP request for your application and extends the Symfony\Component\HttpFoundation\Request class. We will discuss a few of the most important methods below.

リクエストURIの取得Retrieving The Request Path

pathメソッドはリクエストURIを返します。もしリクエストがhttp://domain.com/foo/barに送られたとすると、pathメソッドはfoo/barを返します。The path method returns the request's path information. So, if the incoming request is targeted at http://domain.com/foo/bar, the path method will return foo/bar:

$uri = $request->path();

isメソッドにより、リクエストのURIが指定されたパターンに合致するかを確認できます。このメソッドでは*をワイルドカードとして使用できます。The is method allows you to verify that the incoming request path matches a given pattern. You may use the * character as a wildcard when utilizing this method:

if ($request->is('admin/*')) {
    //
}

リクエストURLの取得Retrieving The Request URL

送信されたリクエストの完全なURLを取得する場合は、urlfullUrlメソッドを使用してください。urlメソッドはクエリストリングを除いたURLを返し、一方のfullUrlメソッドはクエリストリング付きで返します。To retrieve the full URL for the incoming request you may use the url or fullUrl methods. The url method will return the URL without the query string, while the fullUrl method includes the query string:

// クエリ文字列なし
$url = $request->url();

// クエリ文字列付き
$url = $request->fullUrl();

リクエストメソッドの取得Retrieving The Request Method

methodメソッドはリクエストのHTTP動詞を返します。また、isMethodメソッドを使えば、指定した文字列とHTTP動詞が一致するかを調べることができます。The method method will return the HTTP verb for the request. You may use the isMethod method to verify that the HTTP verb matches a given string:

$method = $request->method();

if ($request->isMethod('post')) {
    //
}

PSR-7リクエストPSR-7 Requests

PSR-7規約は、リクエストとレスポンスを含めたHTTPメッセージのインターフェイスを規定しています。PSR-7リクエストのインスタンスを受け取りたければ、ライブラリーをいくつかインストールする必要があります。LaravelはLaravelリクエストとレスポンスをPSR-7互換の実装へ変換するために、Symfony HTTPメッセージブリッジコンポーネントを使用しています。The PSR-7 standard[https://www.php-fig.org/psr/psr-7/] specifies interfaces for HTTP messages, including requests and responses. If you would like to obtain an instance of a PSR-7 request instead of a Laravel request, you will first need to install a few libraries. Laravel uses the Symfony HTTP Message Bridge component to convert typical Laravel requests and responses into PSR-7 compatible implementations:

composer require symfony/psr-http-message-bridge
composer require nyholm/psr7

これらのライブラリをインストールし、ルートクロージャかコントローラメソッドで、リクエストインターフェイスをタイプヒントで指定すれば、PSR-7リクエストを取得できます。Once you have installed these libraries, you may obtain a PSR-7 request by type-hinting the request interface on your route Closure or controller method:

use Psr\Http\Message\ServerRequestInterface;

Route::get('/', function (ServerRequestInterface $request) {
    //
});

lightbulb">Tip!! ルートかコントローラからPSR-7レスポンスインスタンスを返せば、自動的にLaravelのレスポンスインスタンスに変換され、フレームワークにより表示されます。{tip} If you return a PSR-7 response instance from a route or controller, it will automatically be converted back to a Laravel response instance and be displayed by the framework.

入力のトリムとノーマライゼーションInput Trimming & Normalization

Laravelのデフォルトグローバルミドルウェアスタックには、TrimStringsConvertEmptyStringsToNullミドルウェアが含まれています。これらのミドルウェアは、App\Http\Kernelクラスにリストされています。これらのミドルウェアは自動的にリクエストの全入力フィールドをトリムし、それと同時に空の文字列フィールドをnullへ変換します。これにより、ルートやコントローラで、ノーマライズについて心配する必要が無くなります。By default, Laravel includes the TrimStrings and ConvertEmptyStringsToNull middleware in your application's global middleware stack. These middleware are listed in the stack by the App\Http\Kernel class. These middleware will automatically trim all incoming string fields on the request, as well as convert any empty string fields to null. This allows you to not have to worry about these normalization concerns in your routes and controllers.

この振る舞いを無効にするには、App\Http\Kernelクラスの$middlewareプロパティからこれらのミドルウェアを削除することにより、アプリケーションのミドルウェアスタックから外してください。If you would like to disable this behavior, you may remove the two middleware from your application's middleware stack by removing them from the $middleware property of your App\Http\Kernel class.

入力の取得Retrieving Input

全入力データの取得Retrieving All Input Data

全入力を「配列」として受け取りたい場合は、allメソッドを使用します。You may also retrieve all of the input data as an array using the all method:

$input = $request->all();

入力値の取得Retrieving An Input Value

Illuminate\Http\Requestインスタンスのシンプルなメソッドを利用すれば、ユーザー入力のすべてにアクセスできます。リクエストのHTTP動詞に気をもむ必要はありません。HTTP動詞にかかわらず、inputメソッドでユーザー入力を取得できます。Using a few simple methods, you may access all of the user input from your Illuminate\Http\Request instance without worrying about which HTTP verb was used for the request. Regardless of the HTTP verb, the input method may be used to retrieve user input:

$name = $request->input('name');

inputメソッドには第2引数としてデフォルト値を指定できます。この値はリクエストに指定した入力値が存在していない場合に返されます。You may pass a default value as the second argument to the input method. This value will be returned if the requested input value is not present on the request:

$name = $request->input('name', 'Sally');

配列での入力を含むフォームを取り扱うときは、「ドット」記法で配列へアクセスできます。When working with forms that contain array inputs, use "dot" notation to access the arrays:

$name = $request->input('products.0.name');

$names = $request->input('products.*.name');

全入力値を連想配列として取得するために、引数を渡さずにinputメソッドを呼び出すことも可能です。You may call the input method without any arguments in order to retrieve all of the input values as an associative array:

$input = $request->input();

クエリストリングからの入力取得Retrieving Input From The Query String

inputメソッドは、クエリストリングも含めたリクエストペイロード全体から、値を取得するのに対し、queryメソッドはクエリストリングからのみ値を取得します。While the input method retrieves values from entire request payload (including the query string), the query method will only retrieve values from the query string:

$name = $request->query('name');

要求したクエリストリング値が存在しない場合、このメソッドの第2引数が返ってきます。If the requested query string value data is not present, the second argument to this method will be returned:

$name = $request->query('name', 'Helen');

queryメソッドに引数を渡さずに呼び出せば、連想配列ですべてのクエリストリングを取得できます。You may call the query method without any arguments in order to retrieve all of the query string values as an associative array:

$query = $request->query();

動的プロバティーでの入力取得Retrieving Input Via Dynamic Properties

Illuminate\Http\Requestインスタンスに対する動的プロパティとして、ユーザーインプットにアクセスすることも可能です。たとえば、アプリケーションのフォーム上にnameフィールドがあり、入力されたフィールド値にアクセスする場合は次のように行います。You may also access user input using dynamic properties on the Illuminate\Http\Request instance. For example, if one of your application's forms contains a name field, you may access the value of the field like so:

$name = $request->name;

動的プロパティが使われた場合、Laravelは最初にリクエスト本体のパラメータ値を探します。存在していない場合、次にルートパラメータ上のフィールドを探します。When using dynamic properties, Laravel will first look for the parameter's value in the request payload. If it is not present, Laravel will search for the field in the route parameters.

JSON入力値の取得Retrieving JSON Input Values

アプリケーションにJSONリクエストが送られ、Content-Typeヘッダプロパティにapplication/jsonが指定されていたら、inputメソッドによりJSON情報へアクセスできます。JSON配列の深い要素へアクセスするために、「ドット」記法も使用できます。When sending JSON requests to your application, you may access the JSON data via the input method as long as the Content-Type header of the request is properly set to application/json. You may even use "dot" syntax to dig into JSON arrays:

$name = $request->input('user.name');

論理入力値の取得Retrieving Boolean Input Values

チェックボックスのようなHTML要素を取り扱う場合、アプリケーションが「実際」に受け取る値は文字列です。たとえば、"true"とか"on"です。これらの値を論理値で受け取れると便利なため、booleanメソッドが用意されています。booleanメソッドは1、"1"、true、"true"、"on"、"yes"には、trueを返します。それ以外の場合は、すべてfalseを返します。When dealing with HTML elements like checkboxes, your application may receive "truthy" values that are actually strings. For example, "true" or "on". For convenience, you may use the boolean method to retrieve these values as booleans. The boolean method returns true for 1, "1", true, "true", "on", and "yes". All other values will return false:

$archived = $request->boolean('archived');

入力データの一部取得Retrieving A Portion Of The Input Data

入力データの一部を取得する必要があるなら、onlyexceptメソッドが使用できます。両方のメソッドともに限定したい入力を「配列」や引数の並びとして指定します。If you need to retrieve a subset of the input data, you may use the only and except methods. Both of these methods accept a single array or a dynamic list of arguments:

$input = $request->only(['username', 'password']);

$input = $request->only('username', 'password');

$input = $request->except(['credit_card']);

$input = $request->except('credit_card');

lightbulb">Tip!! only メソッドは要求したキー/値ペアを全部返しますが、リクエストに存在しない場合は、キー/値ペアを返しません。{tip} The only method returns all of the key / value pairs that you request; however, it will not return key / value pairs that are not present on the request.

入力値の存在チェックDetermining If An Input Value Is Present

リクエストに値が存在するかを判定するには、hasメソッドを使用します。hasメソッドは、リクエストに値が存在する場合に、trueを返します。You should use the has method to determine if a value is present on the request. The has method returns true if the value is present on the request:

if ($request->has('name')) {
    //
}

配列を指定した場合、hasメソッドは指定値がすべて存在するかを判定します。When given an array, the has method will determine if all of the specified values are present:

if ($request->has(['name', 'email'])) {
    //
}

hasAnyメソッドは、指定した値が存在している場合にtrueを返します。The hasAny method returns true if any of the specified values are present:

if ($request->hasAny(['name', 'email'])) {
    //
}

値がリクエストに存在しており、かつ空でないことを判定したい場合は、filledメソッドを使います。If you would like to determine if a value is present on the request and is not empty, you may use the filled method:

if ($request->filled('name')) {
    //
}

指定したキーがリクエストに存在していないことを判定する場合は、missingメソッドを使います。To determine if a given key is absent from the request, you may use the missing method:

if ($request->missing('name')) {
    //
}

直前の入力Old Input

Laravelでは入力を次のリクエスト一回を処理するまで保存できます。これがとくに便利なのは、バリデーションにエラーがあった場合にフォームを再表示する時です。しかし、Laravelに含まれるバリデーション機能を使っていれば、こうしたメソッドを自分で利用する必要はありません。組み込みバリデーション機能では自動的に利用します。Laravel allows you to keep input from one request during the next request. This feature is particularly useful for re-populating forms after detecting validation errors. However, if you are using Laravel's included validation features[/docs/{{version}}/validation], it is unlikely you will need to manually use these methods, as some of Laravel's built-in validation facilities will call them automatically.

入力をフラッシュデータとして保存Flashing Input To The Session

Illuminate\Http\Requestクラスのflashメソッドは、現在の入力をセッションへ、アプリケーションに要求される次のユーザーリクエストの処理中だけ利用できるフラッシュデータとして保存します。The flash method on the Illuminate\Http\Request class will flash the current input to the session[/docs/{{version}}/session] so that it is available during the user's next request to the application:

$request->flash();

セッションへ入力の一部をフラッシュデータとして保存するには、flashOnlyflashExceptが使用できます。両メソッドは、パスワードなどの機密情報をセッションへ含めないために便利です。You may also use the flashOnly and flashExcept methods to flash a subset of the request data to the session. These methods are useful for keeping sensitive information such as passwords out of the session:

$request->flashOnly(['username', 'email']);

$request->flashExcept('password');

入力保存後にリダイレクトFlashing Input Then Redirecting

入力をフラッシュデータとして保存する必要があるのは、直前のページヘリダイレクトする場合が多いでしょうから、withInputメソッドをリダイレクトにチェーンして簡単に、入力をフラッシュデータとして保存できます。Since you often will want to flash input to the session and then redirect to the previous page, you may easily chain input flashing onto a redirect using the withInput method:

return redirect('form')->withInput();

return redirect('form')->withInput(
    $request->except('password')
);

直前のデータを取得Retrieving Old Input

直前のリクエストのフラッシュデータを取得するには、Requestインスタンスに対しoldメソッドを使用してください。oldメソッドはセッションにフラッシュデータとして保存されている入力を取り出すために役に立ちます。To retrieve flashed input from the previous request, use the old method on the Request instance. The old method will pull the previously flashed input data from the session[/docs/{{version}}/session]:

$username = $request->old('username');

Laravelではoldグローバルヘルパ関数も用意しています。とくにBladeテンプレートで直前の入力値を表示したい場合に、oldヘルパは便利です。指定した文字列の入力が存在していないときは、nullを返します。Laravel also provides a global old helper. If you are displaying old input within a Blade template[/docs/{{version}}/blade], it is more convenient to use the old helper. If no old input exists for the given field, null will be returned:

<input type="text" name="username" value="{{ old('username') }}">

クッキーCookies

リクエストからクッキーを取得Retrieving Cookies From Requests

Laravelフレームワークが作成するクッキーはすべて暗号化され、認証コードで署名されています。つまりクライアントにより変更されると、無効なクッキーとして取り扱います。リクエストからクッキー値を取得するには、Illuminate\Http\Requestインスタンスに対してcookieメソッドを使用してください。All cookies created by the Laravel framework are encrypted and signed with an authentication code, meaning they will be considered invalid if they have been changed by the client. To retrieve a cookie value from the request, use the cookie method on a Illuminate\Http\Request instance:

$value = $request->cookie('name');

もしくは、クッキー値へアクセスするために、Cookieファサードも利用できます。Alternatively, you may use the Cookie facade to access cookie values:

use Illuminate\Support\Facades\Cookie;

$value = Cookie::get('name');

レスポンスへクッキーを付けるAttaching Cookies To Responses

送信するIlluminate\Http\Responseインスタンスへcookieメソッドを使い、クッキーを付加できます。このメソッドには、名前、値、それとこのクッキーが有効である分数を渡します。You may attach a cookie to an outgoing Illuminate\Http\Response instance using the cookie method. You should pass the name, value, and number of minutes the cookie should be considered valid to this method:

return response('Hello World')->cookie(
    'name', 'value', $minutes
);

cookieメソッドには、あまり繁用されない、いくつかの引数を付けることもできます。そうした引数は、PHPネイティブのsetcookieメソッドの引数と、全般的に同じ目的や意味合いを持っています。The cookie method also accepts a few more arguments which are used less frequently. Generally, these arguments have the same purpose and meaning as the arguments that would be given to PHP's native setcookie[https://secure.php.net/manual/en/function.setcookie.php] method:

return response('Hello World')->cookie(
    'name', 'value', $minutes, $path, $domain, $secure, $httpOnly
);

もしくは、アプリケーションから送り出すレスポンスへアタッチするクッキーを「キュー」するために、Cookieファサードが使えます。queueメソッドは、CookieインスタンスかCookieインスタンスを生成するために必要な引数を受け取ります。こうしたクッキーは、ブラウザにレスポンスが送信される前にアタッチされます。Alternatively, you can use the Cookie facade to "queue" cookies for attachment to the outgoing response from your application. The queue method accepts a Cookie instance or the arguments needed to create a Cookie instance. These cookies will be attached to the outgoing response before it is sent to the browser:

Cookie::queue(Cookie::make('name', 'value', $minutes));

Cookie::queue('name', 'value', $minutes);

Cookieインスタンスの生成Generating Cookie Instances

後からレスポンスインスタンスへ付けることが可能な、Symfony\Component\HttpFoundation\Cookieインスタンスを生成したければ、cookieグローバルヘルパが使えます。このクッキーはレスポンスインスタンスへアタッチしない限り、クライアントへ送信されません。If you would like to generate a Symfony\Component\HttpFoundation\Cookie instance that can be given to a response instance at a later time, you may use the global cookie helper. This cookie will not be sent back to the client unless it is attached to a response instance:

$cookie = cookie('name', 'value', $minutes);

return response('Hello World')->cookie($cookie);

有効時間切れクッキーExpiring Cookies Early

Cookieファサードのforgetメソッドにより、有効期間が切れたクッキーを削除できます。You may remove a cookie by expiring it via the forget method of the Cookie facade:

Cookie::queue(Cookie::forget('name'));

また、レスポンスインスタンスへ期限切れクッキーを付加することもできます。Alternatively, you may attach the expired cookie to a response instance:

$cookie = Cookie::forget('name');

return response('Hello World')->withCookie($cookie);

ファイルFiles

アップロードファイルの取得Retrieving Uploaded Files

アップロードしたファイルへアクセスするには、Illuminate\Http\Requestインスタンスに含まれているfileメソッドか、動的プロパティを使用します。fileメソッドはIlluminate\Http\UploadedFileクラスのインスタンスを返します。これはPHPのSplFileInfoクラスを拡張してあり、さまざまなファイル操作のメソッドを提供しています。You may access uploaded files from a Illuminate\Http\Request instance using the file method or using dynamic properties. The file method returns an instance of the Illuminate\Http\UploadedFile class, which extends the PHP SplFileInfo class and provides a variety of methods for interacting with the file:

$file = $request->file('photo');

$file = $request->photo;

リクエスト中にファイルが存在しているかを判定するには、hasFileメソッドを使います。You may determine if a file is present on the request using the hasFile method:

if ($request->hasFile('photo')) {
    //
}

アップロードに成功したか確認Validating Successful Uploads

ファイルが存在しているかに付け加え、isValidメソッドで問題なくアップロードできたのかを確認できます。In addition to checking if the file is present, you may verify that there were no problems uploading the file via the isValid method:

if ($request->file('photo')->isValid()) {
    //
}

ファイルパスと拡張子File Paths & Extensions

UploadedFileクラスはファイルの絶対パスと拡張子へアクセスするメソッドも提供しています。extensionメソッドは、ファイルのコンテンツを元に拡張子を推測します。この拡張子はクライアントから提供された拡張子と異なっている可能性があります。The UploadedFile class also contains methods for accessing the file's fully-qualified path and its extension. The extension method will attempt to guess the file's extension based on its contents. This extension may be different from the extension that was supplied by the client:

$path = $request->photo->path();

$extension = $request->photo->extension();

他のファイルメソッドOther File Methods

他にも、たくさんのメソッドがUploadedFileインスタンスに存在しています。このクラスのAPIドキュメントで、より詳細な情報が得られます。There are a variety of other methods available on UploadedFile instances. Check out the API documentation for the class[https://api.symfony.com/master/Symfony/Component/HttpFoundation/File/UploadedFile.html] for more information regarding these methods.

アップロードファイルの保存Storing Uploaded Files

アップロードファイルを保存するには、通常設定済みのファイルシステムの1つを使います。UploadedFileクラスのstoreメソッドは、ローカルにあろうが、Amazon S3のようなクラウドストレージであろうが、ディスクの1つへアップロードファイルを移動します。To store an uploaded file, you will typically use one of your configured filesystems[/docs/{{version}}/filesystem]. The UploadedFile class has a store method which will move an uploaded file to one of your disks, which may be a location on your local filesystem or even a cloud storage location like Amazon S3.

storeメソッドへは、ファイルシステムで設定したルートディレクトリからの相対位置で、どこに保存するか指定します。このパスにはファイル名を含んではいけません。保存ファイル名として一意のIDが自動的に生成されるためです。The store method accepts the path where the file should be stored relative to the filesystem's configured root directory. This path should not contain a file name, since a unique ID will automatically be generated to serve as the file name.

storeメソッドには、ファイルを保存するために使用するディスクの名前を任意の第2引数として指定もできます。メソッドはディスクルートからの相対ファイルパスを返します。The store method also accepts an optional second argument for the name of the disk that should be used to store the file. The method will return the path of the file relative to the disk's root:

$path = $request->photo->store('images');

$path = $request->photo->store('images', 's3');

ファイル名を自動で生成したくない場合は、パスとファイル名、ディスク名を引数に取る、storeAsメソッドを使ってください。If you do not want a file name to be automatically generated, you may use the storeAs method, which accepts the path, file name, and disk name as its arguments:

$path = $request->photo->storeAs('images', 'filename.jpg');

$path = $request->photo->storeAs('images', 'filename.jpg', 's3');

信用するプロキシの設定Configuring Trusted Proxies

TLS/SSL証明を行うロードバランサの裏でアプリケーションが実行されている場合、アプリケーションがときどきHTTPSリンクを生成しないことに、気づくでしょう。典型的な理由は、トラフィックがロードバランサにより80番ポートへフォワーディングされるため、セキュアなリンクを生成すべきだと判断できないからです。When running your applications behind a load balancer that terminates TLS / SSL certificates, you may notice your application sometimes does not generate HTTPS links. Typically this is because your application is being forwarded traffic from your load balancer on port 80 and does not know it should generate secure links.

これを解決するには、Laravelアプリケーションに含まれている、App\Http\Middleware\TrustProxiesミドルウェアを使用します。これでアプリケーションにとって信用できるロードバランサやプロキシを簡単にカスタマイズできます。信用できるプロキシをこのミドルウェアの$proxiesプロパティへ配列としてリストしてください。信用するプロキシの設定に加え、信用できるプロキシの$headersも設定できます。To solve this, you may use the App\Http\Middleware\TrustProxies middleware that is included in your Laravel application, which allows you to quickly customize the load balancers or proxies that should be trusted by your application. Your trusted proxies should be listed as an array on the $proxies property of this middleware. In addition to configuring the trusted proxies, you may configure the proxy $headers that should be trusted:

<?php

namespace App\Http\Middleware;

use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request;

class TrustProxies extends Middleware
{
    /**
     * このアプリケーションで信用するプロキシ
     *
     * @var string|array
     */
    protected $proxies = [
        '192.168.1.1',
        '192.168.1.2',
    ];

    /**
     * プロキシを検出するために使用するヘッダ
     *
     * @var int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

lightbulb">Tip!! AWS Elastic Load Balancingを使用している場合、$headersの値はRequest::HEADER_X_FORWARDED_AWS_ELBに設定する必要があります。$headersで使用する内容の詳細は、Symfonyのtrusting proxiesドキュメントを参照してください。{tip} If you are using AWS Elastic Load Balancing, your $headers value should be Request::HEADER_X_FORWARDED_AWS_ELB. For more information on the constants that may be used in the $headers property, check out Symfony's documentation on trusting proxies[https://symfony.com/doc/current/deployment/proxies.html].

全プロキシを信用Trusting All Proxies

Amazon AWSや他の「クラウド」ロードバランサプロバイダを使用している場合は、実際のバランサのIPアドレスは分かりません。このような場合、全プロキシを信用するために、*を使います。If you are using Amazon AWS or another "cloud" load balancer provider, you may not know the IP addresses of your actual balancers. In this case, you may use * to trust all proxies:

/**
 * このアプリケーションで信用するプロキシ
 *
 * @var string|array
 */
protected $proxies = '*';

章選択

設定

明暗テーマ
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のみ表示
OS表示
全OS表示
macOSのみ表示
windowsのみ表示
linuxのみ表示
和文変換

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

本文フォント

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

コードフォント

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

保存内容リセット

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

ヘッダー項目移動

キーボード操作