Maison >cadre php >YII >La différence entre les événements et les comportements yii

La différence entre les événements et les comportements yii

(*-*)浩
(*-*)浩original
2019-12-04 11:04:213567parcourir

Personnellement, dans Yii, les choses les plus difficiles à comprendre sont les événements et les comportements. Cela n'est pas seulement dû au fait que leurs concepts sont difficiles à comprendre, mais également parce que leurs scénarios d'application sont difficiles à comprendre. Il n'est pas clair quand les événements et les comportements doivent être utilisés pour le développement.

La différence entre les événements et les comportements yii

Événement

Le modèle d'événement est le « modèle d'observateur » dans le modèle de conception : lorsque le object Lorsque l'état change, cet objet peut notifier d'autres objets de l'événement.

Pour utiliser le modèle d'événement, vous devez mettre en œuvre ces trois étapes :                                                                                                                                                                                                           Enregistrer le handle d'événement ; 3. Déclencher l'événement.

Pourquoi devons-nous suivre ces trois étapes ? Étant donné que PHP lui-même n'est pas exécuté de manière procédurale, le mécanisme de déclenchement d'événements de Yii ne déclenchera pas directement des événements comme ActionScript 3+.

Certaines personnes disent que le concept d'événement de Yii est similaire au concept d'événement dans js, car Yii lie les événements au processus d'exécution de Yii::app().

Comportement

Ici, nous décrivons d'abord pourquoi les comportements sont utilisés.

Il existe deux façons d'ajouter des fonctionnalités à une classe :

1 Modifier directement le code de cette classe et ajouter des fonctions membres et des variables membres ;

2. Dériver et étendre à travers les sous-classes. Évidemment, la deuxième méthode est plus facile à maintenir et à développer. Cependant, si plusieurs fonctionnalités doivent être ajoutées à une classe (plusieurs personnes à des moments différents), une dérivation à plusieurs niveaux est alors nécessaire, ce qui augmente évidemment les coûts de maintenance.

Dans Yii, via la liaison de classe comportementale, le composant ajoute à lui-même des méthodes membres et des variables membres d'une ou plusieurs classes CBehavior et décharge certaines classes CBehavior lorsqu'elles ne sont pas nécessaires.

En même temps, vous pouvez remplacer la méthode CBeavior::events pour obtenir plusieurs liaisons d'événements avec la classe cible. Ces événements seront liés ensemble lorsque le comportement actuel sera lié à la classe cible.

Résumé des événements et comportements Yii2

1) Les événements sont utilisés pour déclencher l'exécution d'un morceau de code prédéfini à un moment précis que vous devez utiliser. la classe d'événements, toutes héritées de yiibaseComponent.

2) Le comportement est utilisé pour compléter la classe. En liant le comportement à une classe, la classe peut avoir les propriétés et les méthodes définies par le comportement lui-même, tout comme la classe elle-même a ces propriétés et méthodes. Et il n'est pas nécessaire d'écrire une nouvelle classe pour hériter ou inclure des classes existantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn