この記事では、YII Framework フィルターの使用方法を例とともに説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
まず公式ドキュメントを読んで、フィルターとは何か、その機能、フィルタールール、フィルターの定義方法などを確認してください。
次に、フィルターの概要を説明します。
http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.controller
フィルターは、コントローラーのアクションの前または後に実行するように構成できるコードの一部です。たとえば、アクセス制御フィルターは、要求されたアクションを実行する前にユーザーが認証されていることを確認するために実行されます。パフォーマンス フィルターは、コントローラーの実行にかかる時間を測定するために使用できます。
アクションには複数のフィルターを含めることができます。フィルタは、フィルタ リストに表示される順序で実行されます。フィルターは、アクションや後続の他のフィルターの実行を防ぐことができます
フィルターはコントローラークラスのメソッドとして定義できます。メソッド名は filter で始まる必要があります。たとえば、既存の filterAccessControl メソッドは、accessControl という名前のフィルターを定義します。 フィルター メソッドは次の構造でなければなりません:
リーリー$filterChain (フィルター チェーン) は CFilterChain のインスタンスであり、要求されたアクションに関連するフィルターのリストを表します。 filter メソッド内で $filterChain->run() を呼び出して、後続のフィルターとアクションの実行を続けることができます。
フィルターは、CFilter のインスタンスまたはそのサブクラスの 1 つであることもできます。次のコードは、新しいフィルター クラスを定義します:
リーリーアクションにフィルターを適用するには、CController::filters() メソッドをオーバーライドする必要があります。このメソッドはフィルター構成の配列を返す必要があります。例:
リーリー上記のコードは、postOnly と PerformanceFilter の 2 つのフィルターを指定しています。 postOnly フィルターはメソッドベースです (対応するフィルター メソッドは CController で定義されています)。一方、performanceFilter フィルターはオブジェクトベースです。パス エイリアス application.filters.PerformanceFilter は、フィルター クラス ファイルが protected/filters/PerformanceFilter であることを指定します。 PerformanceFilter を配列で構成して、フィルター オブジェクトのプロパティ値の初期化に使用できるようにします。ここでは、PerformanceFilter の単位プロパティ値が秒に初期化されます。
プラス記号とマイナス記号を使用して、どのアクションにフィルターを適用するか、または適用しないかを指定できます。上記のコードでは、postOnly は編集および作成アクションにのみ適用され、PerformanceFilter は編集および作成以外のアクションに適用される必要があります。 フィルター設定でプラス記号またはマイナス記号が使用されていない場合、このフィルターはすべてのアクションに適用されます。
フィルター機能:
訪問者とデータをフィルタリングし、アクセス操作を記録するために使用されます
使用方法:
1 つはコントローラーのメソッドとして使用されます。メソッド名は filter で始まります。
リーリー2 番目に、反対側のフィルター クラスを定義し、require extends CFilter を要求します。
Cフィルター
リーリー次の例は、2 つのフィルター ルールの使用法を示しています。
SiteController.phpリーリー
/www/yii_dev/testwebap/protected# ツリー
.
§── コマンド
│ §── シェル
│ §── TestCommand.php
│ └── TestCommand.php~
§── コンポーネント
│ §──Controller.php
│ └── UserIdentity.php
§── 設定
│ §── console.php
│ §── main.php
│ └── test.php
§── コントローラー
│ §──投稿
│ │ └─ UpdateAction.php
│ §── SiteController.php
│ §── TestTestController.php
│ └── UserController.php
§── フィルター
│ └── MyFilter.php
MyFilter.php
リーリー
--->filterAccessControl--->印刷アクション
http://www.localyii.com/testwebap/index.php?r=site/create
--->MyFilter-->pre--->アクションの作成-->MyFilter-->post
リーリー
http://www.localyii.com/testwebap/index.php?r=site/print
--->filterAccessControl-->MyFilter-->pre--->印刷アクション-->MyFilter-->post
フィルターには-、+
があります
具体的な機能は
+ は、これらのアクションにのみ作用することを意味します
- アクション名のリストが続きます。除外を示します。
- または + がない場合は、すべてのアクションが適用されます
この記事が、Yii フレームワークに基づいた PHP プログラムの設計に役立つことを願っています。