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 を確認してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









