2010-02-03 4 views
11

J'apprends actuellement le framework yii et j'ai lu leur documentation.yii composants: événements et comportements?

mais je ne comprends toujours pas les composants. Qu'est-ce que c'est. ils parlent des événements et des comportements des composants.

Est-ce que quelqu'un pourrait expliquer ces termes pour moi et me donner de vrais exemples d'application de ce qu'un composant, ses événements et comportements pourraient être?

serait utile!

Répondre

5

Un composant CComponent ne fait pas grand-chose. C'est très semblable à un QObject en Qt. Un CComponent peut déclencher des événements et peut avoir des délégués aux événements (via attachEventHandler()).

En ce qui concerne les comportements, le manuel dit:

Les méthodes du comportement peuvent être invoquées comme si elles appartiennent à la composante . Plusieurs comportements peuvent être attachés au même composant.

Pour attacher un comportement à un composant, appel attachBehavior; et pour détacher le comportement du composant, appelez detachBehavior.

Un comportement peut être temporairement activé ou désactivé en appelant enableBehavior ou disableBehavior, respectivement. Lorsque est désactivé, les méthodes de comportement ne peuvent pas être appelées via le composant.

partir de la version 1.1.0, les propriétés d'un comportement (soit ses variables membres du public ou de ses propriétés définies par les getters et/ou poseurs) sont accessibles par l'intermédiaire du composant il est attaché.

Ce qui vous donne la possibilité de simuler un mécanisme signals and slots, ou strategy pattern (en activant ou désactivant les comportements).

La plupart des classes de Yii ont CComponent comme classe de base.

En tant qu'utilisateur, vous verrez les avantages qu'ils offrent grâce aux mécanismes mentionnés ci-dessus lorsque vous créerez vos propres composants (sous protected/components /).

Vous pouvez trouver un bon point de départ pour la mise en œuvre des composants ici: http://www.yiiframework.com/doc/guide/basics.component

4

En Yû, une application fonctionne grâce à l'interaction des différents objets , Ces objets peuvent être simplement considérés comme des "composants" ou des "briques" de l'application. Un composant est simplement un objet qui a été écrit pour effectuer ou faciliter une tâche particulière dans une application Yii. Si vous avez à regarder « flux de travail typique d'une application Yii » sur [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1]

vous vous rendrez compte que, en dehors de la vue et des mises en page (qui sont considérées comme des scripts) et de l'index.php, tout ce qui interagit avec les autres est un composant. Ils effectuent tous des tâches différentes lorsque l'application est exécutée.

Presque tout dans Yii est un composant (ou dérivé de la classe CComponent).

Plus précisément,

CComponent implémente le protocole de définir, en utilisant les propriétés et événements «

Events. Events vous permettent d'effectuer une séquence (plus d'un) d'actions Lorsque quelque chose de spécifique se produit dans un composant, vous définissez un événement et attachez un certain nombre de fonctions (actions) à cet événement.A présent, chaque fois que cet événement est levé dans le composant, toutes les fonctions attachées à cet événement sont exécutées. , ce sont un peu similaire au concept de crochets dans Wordpress.

L'application spécifique des événements dans un composant est défini par Yû comme

Il est utile lorsque vous voulez interrompre le flux de l'application normale sans extension des classes de base.

: Behaviors sont tout simplement Behaviors la manière de Yû de vous offrir un héritage multiple, qui ne sont pas pris en charge par tout en éliminant PHP5 avec de multiples fonction même problème de nom de l'héritage multiple. Si vous souhaitez hériter des propriétés et des méthodes de classe A et B. Vous étendez la classe A, puis attachez la classe B à son comportement, et vous pouvez également utiliser toutes les méthodes de classe B également. Maintenant, si A et B contenaient une fonction nommée 'utilefunction()', tous les appels à cette fonction se traduiront par l'exécution de 'usefulfunction' à partir de la classe A seulement. Si les classes A et B étaient ajoutées en tant que comportements à une classe, l'appel 'utilefunction' entraînerait l'exécution de la méthode à partir du comportement qui était attaché en premier.

P.S. (Je ne suis pas un expert, alors corrigez-moi si je me trompe.)