ホームページ  >  記事  >  バックエンド開発  >  [Lumen 5.2 ドキュメント] 基本 -- HTTP リクエスト

[Lumen 5.2 ドキュメント] 基本 -- HTTP リクエスト

WBOY
WBOYオリジナル
2016-06-23 13:16:381147ブラウズ

1. リクエスト インスタンスにアクセスします

依存関係注入を通じて現在の HTTP リクエスト インスタンスを取得します。現在のリクエスト インスタンスは、サービス コンテナによって自動的に挿入されます。 :

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Routing\Controller;class UserController extends Controller{    /**     * 存储新用户     *     * @param  Request  $request     * @return Response     */    public function store(Request $request)    {        $name=$request->input('name');                 //    }}

コントローラー メソッドがルート パラメーターの入力も取得することを期待している場合は、たとえばルートが次のように定義されている場合、ルート パラメーターを配置するだけです。

$app->put('user/{id}','UserController@update');

IlluminateHttpRequest をタイプヒントして渡すこともできます。ルートパラメータにアクセスするためのコントローラーメソッドを定義します:

<?php    namespace App\Http\Controllers;    use Illuminate\Http\Request;use Illuminate\Routing\Controller;classUser Controller extends Controller{    /**     * 更新指定用户     *     * @param  Request  $request     * @param  int  $id     * @return Response     */     public function update(Request $request,$id)    {         //    }}

1.1 基本的なリクエスト情報

IlluminateHttpRequest インスタンスは、アプリケーションの HTTP リクエストを検出するための複数のメソッドを提供します。Lumen の IlluminateHttpRequest は SymfonyComponentHttpFoundationRequest クラスから継承します。

リクエスト URI を取得する

path メソッドは、リクエストされた URI を返します。 したがって、受信したリクエストのパスが http://domain.com/foo/bar の場合、path メソッドは foo/bar を返します:

$uri=$request->path();

is メソッドを使用すると、受信リクエストが指定されたパターンに一致するかどうかを検証できます。このメソッドを使用するときは、* ワイルドカードを使用できます:

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

パス情報だけでなく完全な URL を取得したい場合は、リクエスト インスタンスの url メソッドまたは fullUrl メソッドを呼び出すことができます:

//不带请求参数$url=$request->url();//带请求参数$url = $request->fullUrl();

リクエスト メソッドを取得する

メソッドメソッドはリクエストHTTPリクエストメソッドを返します。 isMethod メソッドを使用して、HTTP リクエスト メソッドが指定された文字列と一致するかどうかを確認することもできます。

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

1.2 PSR-7 リクエスト

PSR-7 標準は、リクエストとレスポンスを含む HTTP メッセージ インターフェイスを指定します。 PSR-7 リクエストインスタンスを取得したい場合は、まずいくつかのライブラリをインストールする必要があります。Lumen は Symfony HTTP Message Bridge コンポーネントを使用して、一般的な Lumen リクエストとレスポンスを PSR-7 互換の実装に変換します。

composer require symfony/psr-http-message-bridgecomposer require zendframework/zend-diactoros

これらのライブラリをインストールした後、 PSR-7 リクエストを取得するには、ルートまたはコントローラーでリクエスト タイプをタイプヒントするだけで済みます:

use Psr\Http\Message\ServerRequestInterface;$app->get('/', function (ServerRequestInterface $request) {    //});

PSR-7 レスポンス インスタンスがルートまたはコントローラーから返された場合、自動的に Lumen レスポンスに変換されますインスタンス化して表示します。

2. 入力を取得する

入力値を取得する

いくつかの簡単なメソッドを使用して、IlluminateHttpRequest インスタンスからユーザー入力にアクセスします。入力アクセス インターフェイスはすべてのリクエスト メソッドで同じであるため、リクエストに使用される HTTP リクエスト メソッドについて心配する必要はありません。

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

If 入力メソッドに 2 番目のパラメータとしてデフォルト値を渡すこともできます。リクエストの入力値は次のとおりです。現在のリクエストが表示されない場合、この値が返されます:

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

フォーム配列入力を処理する場合、「.」を使用して配列にアクセスできます:

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

入力値が表示されるかどうかを確認するには

値がリクエストに表示されるかどうかを判断するには、has メソッドを使用できます。値が表示され空でない場合、has メソッドは true を返します:

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

すべての入力データを取得する

また、次のようにしてすべての入力データを取得することもできます。 all メソッド:

$input = $request->all();

入力データの一部を取得する

入力データのサブセットを取り出す必要がある場合は、only メソッドまたは else メソッドを使用できます。どちらのメソッドも配列または動的パラメータ リストを受け取ります。唯一のパラメータ:

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

ファイルのアップロード

アップロードされたファイルを取得する

IlluminateHttpRequest インスタンス メソッドのファイルを使用して、アップロードされたファイルにアクセスできます。このメソッドによって返されるオブジェクトは、SymfonyComponentHttpFoundationFileUploadedFile クラスのインスタンスであり、ファイルと対話するためのメソッドを提供する PHP 標準ライブラリの SplFileInfo クラス:

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

ファイルが存在するかどうかを確認する

hasFile メソッドを使用してファイルが存在するかどうかを確認する リクエスト内に存在するかどうか:

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

ファイルが存在するかどうかを確認するアップロードに成功しました

isValid メソッドを使用して、アップロード プロセス中にファイルにエラーがあるかどうかを判断します。

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

アップロードされたファイルを保存します

move メソッドを使用して、アップロードされたファイルを新しいパスに保存します。一時ディレクトリ (PHP 構成ファイルで構成) から指定された新しいディレクトリにアップロードされたファイル:

$request->file('photo')->move($destinationPath);$request->file('photo')->move($destinationPath, $fileName);

その他のファイル メソッド

UploadFile インスタンスには他にも多くのメソッドがあります。その他の関連メソッドについては、このクラスの API を確認してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。