Maison >cadre php >YII >Que signifie le composant dans yii2 ?

Que signifie le composant dans yii2 ?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-12-09 11:15:493185parcourir

Le composant

Que signifie le composant dans yii2 ?

est le composant principal de l'application-cadre YII (application). Il s'agit d'une instance ou d'une sous-classe de [yiibaseComponent]. Les composants ont trois caractéristiques (fonctions) importantes :

·Propriétés (propriétés)

·Événements

·Comportements

L'utilisation de ces fonctionnalités seules ou en combinaison peut rendre les classes du framework Yii plus faciles à utiliser et personnalisables. Par exemple, en introduisant un composant d'interaction utilisateur [yiijuiDataPickerdata picker wigets], vous pouvez facilement générer un contrôle de sélection de date (sélecteur de date jquery ui) dans la vue.

use yii\jui\DatePicker;
echo DatePicker::widget([
    'language' => 'ru',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);

Les propriétés du widget DatePicker sont faciles à modifier car il hérite de la classe [yiibaseComponet]

Bien que le composant soit très puissant, sa surcharge est supérieure à celle des objets de classe ordinaires car le composant De la mémoire et du temps CPU supplémentaires sont nécessaires pour traiter les événements et les comportements. Si votre composant n'a pas besoin des deux fonctionnalités (fonctions) des événements et des comportements, vous pouvez directement hériter de [yiibaseObject], afin que votre composant améliore les performances (efficacité). identique à celui des objets de classe ordinaires et prend en charge les propriétés.

Pour écrire une classe qui hérite de [yiibaseComponent] ou de [yiibaseObject], vous devez suivre les conventions suivantes :

·Supposons que vous substituiez le constructeur, un paramètre $config doit être défini comme dernier paramètre du constructeur. Ce paramètre est passé au constructeur de la classe parent en utilisant

· dans. le réécrit À la fin du constructeur, le constructeur de la classe parent doit être appelé

· Supposons que vous substituiez le [yiibaseObject::init()|init ()], alors La méthode init de la classe parent doit être appelée à partir de la méthode init surchargée

Par exemple

namespace yii\components\MyClass;
use yii\base\Object;
class MyClass extends Object
{
    public $prop1;
    public $prop2;
    public function __construct($param1, $param2, $config = [])
    {
        // ... initialization before configuration is applied
        parent::__construct($config);
    }
    public function init()
    {
        parent::init();
        // ... initialization after configuration is applied
    }
}

Suivez l'exemple suivant pour que les propriétés de votre composant puissent être configuré (initialisé) lors de sa création. :

$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]);
// alternatively
$component = \Yii::createObject([
    'class' => MyClass::className(),
    'prop1' => 3,
    'prop2' => 4,
], [1, 2]);

Astuce : La manière d'utiliser [Yii::createOject()] semble plus compliquée, mais comme [Yii::createObject] est basé sur l'implémentation de l'injection de dépendances, c'est plus puissant

La classe [yiibaseObject] applique le cycle de vie suivant :

(1) La pré-initialisation est implémentée dans le constructeur et les valeurs d'attribut par défaut peuvent être définies à cette fois ;

(2) Grâce à l'objet $config Configuration, la valeur par défaut peut être remplacée via la configuration de l'objet dans le constructeur

(3) Dans le fichier [yiibaseObject::init()| init()], effectuez la configuration d'initialisation. Des vérifications de routine et des vérifications de normalisation des attributs peuvent être implémentées dans la méthode init

(4) Appel de méthode objet.

Les trois premières étapes sont toutes implémentées dans le constructeur, ce qui signifie que lorsque vous obtenez une instance d'un objet, elle a été initialisée à l'état approprié et peut être utilisée en toute confiance.

Le site Web PHP chinois propose un grand nombre de Tutoriels d'introduction Yii gratuits, tout le monde est invité à apprendre !

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