Comportamentele din yii2

Comportamentele din yii2

În interiorul comportamentului, vă puteți referi la componenta la care este atașat utilizând proprietatea yii \ base \ Behavior :: $ owner:

Există modalități de a seta comportamentul dorit pentru o clasă:
  1. Legarea la nivelul obiectului (controler, model, componentă ...) - redefinirea metodei comportamentului ();
  2. Legarea dinamică (din metode / acțiuni) fără suprascrierea metodei comportamentului ();
  3. Legarea prin configurare.

Object-level snapping

Dacă faceți o clasă separată, atunci se extinde modelul, că metodele publice din această clasă sunt disponibile din model. De asemenea, în clasă, puteți seta comportamentul comportamentului la eveniment.

Un exemplu.
controlerul creează un comportament care este apelat înainte de efectuarea acțiunilor.

"slug" - numele matricei de date, poate fi orice, inclusiv. nu se potrivesc cu numele clasei sau chiar sunt absente. În acest caz, comportamentul este numit numit.
'class' - specifică clasa care trebuie apelată.
"inițiali" este o variabilă publică care transmite datele unei clase. pentru că această clasă Slug poate fi apelată pentru diferite controlere, modele ... diferite valori ale variabilelor pot fi transmise.

Dacă nu aveți nevoie să transferați date într-o clasă, puteți scrie mai scurt și fără un nume (comportament anonim):

Clasa de comportament ar putea arăta astfel:
În acest caz, comportamentul este utilizat pentru a lega evenimentul la acțiunea controlerului. Anume - înainte de a executa orice acțiune a acestui controler, metoda getMyMetod () din clasa de comportament va fi executată.

yii \ web \ Controller - specifică unde să se lege
EVENT_BEFORE_ACTION - un eveniment care ar trebui să funcționeze (vedeți aici lista evenimentelor standard)
getMyMetod este numele metodei clasei care va fi apelată la apariția evenimentului.

În comportamentul nostru, vom crea un parametru global de aplicație "fio" cu valoarea post_ksl înainte de a apela orice acțiune. Puteți obține valoarea de genul:


Pe lângă utilizarea evenimentelor, metodele clasei specificate în comportament extind obiectul în care este definit acest comportament (controler, model ...)

Adică dacă adăugați o metodă la clasa Slug


Puteți să o numiți în acțiunile controlerului:

Legarea dinamică (de la metode / acțiuni) fără suprimarea metodei comportamentului ().


Pentru a atașa dinamic comportamentul, trebuie să apelați metoda yii \ base \ Component :: attachBehavior () a componentei necesare.
Primul parametru specifică un nume arbitrar pentru comportament.


Un exemplu de conectare a clasei Slug la controler Este, de asemenea, posibil să se conecteze mai multe comportamente:

Legarea prin configurație

Dacă vă conectați componentele în fișierul \ config \ main.php. atunci puteți atașa imediat comportamentul atunci când vă conectați.
Acest lucru se face folosind prefixul "as", urmat de numele comportamentului.


După aceea, atunci când apelați componenta - clasa Comp, vor fi disponibile metode de comportament (clasa Slug).
De exemplu:


Puteți comporta comportamentele obiectului aplicației în sine ($ app):
În config \ main.php unul din elementele de matrice în schimb:

După aceasta, proprietățile și metodele din clasa specificată vor fi adăugate în aplicație. De exemplu, metoda name (). care poate fi apelat acum după cum urmează:

Dacă nu este necesar să treceți parametrii, puteți scrie într-o singură linie:
sau (același lucru)

OpenCart 2+ descrie procesul de descărcare a aplicației.

Pași pentru a descărca configurația OpenCart versiunea 2+ De la punctul de intrare la conectarea bibliotecilor necesare.

Utilizarea evenimentelor din PHP.

Exemple de creare și utilizare a evenimentelor în php sunt date.

Crearea unei extensii (pachet) pentru Yii2.

În acest articol vă voi spune cum să creați extensii pentru o aplicație în cadrul php Yii2 pentru a fi utilizate în alte proiecte și pentru a fi utilizate de alți dezvoltatori.

Rahmat! Men o'zbek yigitman. Shunga o'zbekcha gapiraman. Tushunmagan bo'lsangiz uzur.

Mulțumesc. Am crezut că ar fi posibil să eliminați ceva în acest cod și acesta va funcționa.

Și dacă adresa URL nu trebuie să afișeze o etichetă de limbă, cum se poate face acest lucru?

Pentru a afișa corect acest element, trebuie să instalați FlashPlayer și să activați Java Script în browser.

Articole similare