ホームページ >PHPフレームワーク >ThinkPHP >TP5.0.x コマンドがフィルターを実行する方法について説明しましょう。

TP5.0.x コマンドがフィルターを実行する方法について説明しましょう。

藏色散人
藏色散人転載
2022-01-27 17:16:092659ブラウズ

次の thinkphp Framework チュートリアル コラムでは、Thinkphp5.0.x コマンドでフィルターを実行する方法を紹介します。

Thinkphp5.0.x コマンドの実行

また、Request クラスでコマンドの実行に <span style="color:#c7254e;">call_user_func()</span> を使用します。関数 filterValue で実行 [推奨: thinkphp ビデオ チュートリアル ]

最初にどの関数が filterValue を呼び出すかを検索します:

リクエスト内class FilterValue() は cookie() 関数と input() 関数で呼び出されます

Cookie 関数呼び出しを検索しますが、結果が見つかりませんでした。入力呼び出しを検索します:

##実行関数のフォローアップ:

Step1

In

$request = is_null($request) ? リクエスト::インスタンス() : $request;

はリクエストのコンストラクターを実行しますが、このとき file_get_contents( 'php: //input') は POST のコンテンツを取得し、それを $request->input 変数に割り当てます

#Step2

$ディスパッチ

= self::#routeCheck($リクエスト, $config);

routeCheck では、Route クラスのチェック関数を入力します。

チェック関数は、$request->method() を呼び出します。

Incoming パラメータのデフォルト値は false で、elseif で実行され、var_method => _method が取得されます。取得した変数は以下に上書きされます。このとき、__construct を渡すと、$_POST が実行されます。 post によって送信されたデータを取得します。これは構築関数で使用できます。 POST 配列をトラバースして、リクエスト クラスのメンバーを上書きします

次の使用プロセスには次の必要があります: デバッグ モードがオンです

Param():

は run() で呼び出されます

param 関数をフォローアップします:

/**

* 現在のリクエストのパラメータを取得します

* @access public

* @param string|array $name 変数名

* @parammixed $default デフォルト値

* @param string|array $filter フィルターメソッド

* @returnmixed

*/

最初に if 条件を入力し、メソッドメソッドをフォローアップします

##method() 受信パラメータが true:

次のステートメントを実行します: 元のリクエスト タイプを取得します

$_SERVER['REQUEST_METHOD']、戻り値は POST

Return です。 to param, $ method=POST

したがって、スイッチの POST 部分が実行され、ポスト関数が入力されます:

ポスト関数:

/ **

* POSTパラメータの設定と取得

* @access public

* @param string $name 変数名

* @parammixed $default デフォルト値

* @param string|array $filter フィルター メソッド

* @returnmixed

*/

パラメータを渡します:

、$contentにコピーし、$_POSTとjson形式かどうかを判定します。jsonが渡された場合はjson_decodeが必要です。それ以外の場合は、$_POSTの値が直接使用されます。

入力メソッドを入力します。受信パラメータは POST です。取得した

名前は false、 input はデータを返し、post() は

param() 関数を直接返します。 媒体:

$vars = $this- >post(false);

getFilter を入力してください: # ##################################

getFilter in$filter = $filter ?: $this-> filter;$request クラス (以前にコンストラクト トラバーサルで説明した) のフィルター変数値を取得し、それを入力関数への戻り値として渡します

実行を継続array_walk_recursive($data, [$this , 'filterValue'], $filter);

##array_walk_recursive() この関数は、配列内の各要素にユーザー定義関数を適用します。関数では、配列のキー名とキー値がパラメータです。

は ## から取得した $filters=system と同等です。 #$ data の各変数は、$value として渡されます。 systemcall_user_func の最初のパラメータとして、ipconfig を取得します。 2 つ目は、コマンドの実行を引き起こしました。 結果:

以上がTP5.0.x コマンドがフィルターを実行する方法について説明しましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。