質問
私は現在 yii フレームワークを学習しており、そのドキュメントを読みました。
しかし、私はまだコンポーネントを理解していません。これらは何ですか。彼らはコンポーネントのイベントと動作について話します。
誰かがこれらの用語を説明し、コンポーネント、そのイベント、動作がどのようなものかを示す実際のアプリの例を教えてくれませんか?
役に立つでしょう!
解決
CComponent 自体はあまり機能しません。これは Qt の QObject によく似ています。CComponent はイベントを発生させることができ、(attachEventHandler() を介して) イベントへのデリゲートを持つことができます。
動作に関して、マニュアルには次のように書かれています。
動作の方法は、コンポーネントに属しているかのように呼び出すことができます。複数の動作を同じコンポーネントに接続できます。
動作をコンポーネントに接続するには、AttachBehaviorを呼び出します。コンポーネントから動作を取り外すには、DeTachBehaviorを呼び出します。
動作は、それぞれEnableBehaviorまたは無効化することにより、一時的に有効にするか、無効にすることができます。無効になった場合、動作方法をコンポーネントを介して呼び出すことはできません。
バージョン1.1.0から始めて、動作のプロパティ(そのパブリックメンバー変数またはゲッターおよび/またはセッターを介して定義されたプロパティのいずれか)に、接続されているコンポーネントからアクセスできます。
これにより、 信号とスロット メカニズム、または 戦略パターン (動作を有効または無効にすることによって)。
Yii のほとんどのクラスには、基本クラスとして CComponent があります。
ユーザーは、独自のコンポーネント (protected/components/ の下) を作成するときに、上記のメカニズムを通じて提供される利点を確認することができます。
コンポーネントを実装するための適切な出発点は次のとおりです。 http://www.yiiframework.com/doc/guide/basics.component
他のヒント
Yii では、アプリケーションはさまざまなオブジェクトの相互作用を通じて動作します。これらのオブジェクトは、単にアプリケーションの「コンポーネント」または「構成要素」と考えることができます。コンポーネントは、Yii アプリケーションで特定のタスクを実行または促進するために記述された単なるオブジェクトです。http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc]で[yiiアプリケーションの典型的なワークフロー]を見ると
ビューとレイアウト (スクリプトとみなされます) と Index.php を除けば、他のものと対話するものはすべてコンポーネントであることがわかります。アプリケーションの実行時に、これらはすべて異なるタスクを実行します。
Yii のほとんどすべてはコンポーネント (または CComponent クラスから派生) です。
すなわち、
CComponent は、プロパティとイベントを使用して定義するプロトコルを実装します。
イベント :イベントを使用すると、コンポーネント内で特定の何かが発生したときに、一連の (複数の) アクションを実行できます。イベントを定義し、そのイベントにいくつかの関数 (アクション) を付加します。これで、コンポーネント内でイベントが発生するたびに、そのイベントに関連付けられたすべての関数が実行されます。私の理解によれば、これらは Wordpress のフックの概念に似ています。
コンポーネント内のイベントの特定のアプリケーションは、Yii によって次のように定義されます。
これは、基本クラスを拡張せずに通常のアプリケーション フローを中断したい場合に便利です。
行動 :ビヘイビアーは単に Yii が多重継承を提供するための方法であり、多重継承の複数関数同名問題を解決する一方で、PHP5 ではサポートされていません。クラス A とクラス B からプロパティとメソッドを継承する場合。クラス A を拡張し、その動作としてクラス B をアタッチすると、クラス B のすべてのメソッドも使用できるようになります。ここで、A と B の両方に 'usefulfunction()' という名前の関数が含まれている場合、この関数へのすべての呼び出しは、クラス A からのみ 'usefulfunction' を実行することになります。クラス A とクラス B の両方がビヘイビアーとしてクラスに追加された場合、「usefulfunction」呼び出しにより、最初にアタッチされたビヘイビアからメソッドが実行されます。
追伸(私は専門家ではありません。したがって、どこか間違っている場合は修正してください。)
おそらく、自分のwikiに、この余分なページは、より多くの洞察を提供することができます: http://www.yiiframework.com/wiki/44/behaviors-events/