Yii Framework 2.0 - Dezvoltarea aplicațiilor web

Yii este un cadru scris în php pentru a face dezvoltarea aplicațiilor web de afaceri mai agile și standardizate. Arhitectura sa bazată pe componente, este foarte potrivită pentru dezvoltarea de aplicații care trebuie să suporte mult trafic, care necesită metode de dezvoltare standard și bine documentate, acest cadru este utilizat pentru orice aplicație web, cum ar fi portaluri, sisteme de management al afacerii, managementul conținutului (CMS), site-uri web de comerț electronic.

Unele caracteristici în comparație cu alte cadre


Folosiți modelul MVC (Model / Vizualizare / Controler)Spre deosebire de alte cadre, separă fiecare componentă în foldere pentru o comandă și o întreținere mai bune.
  • Generare cod: Yii poate genera cod CRUD dintr-un tabel de baze de date, creând interogări, liste și formulare.
  • Suport integrat pentru cadru jQuery și Bootstrap
  • Metode integrate de control al accesului de autentificare și autorizare a rolurilor
  • Incorporează un sistem de securitate și prevenire a atacurilor extern la internet.
  • Suportă widget-uri și extensii dezvoltate de comunitate
  • Sprijină utilizarea șabloanelor de proiectare

Instalarea cadrului Yii


Există două versiuni de Yii, una de bază și una avansată. Versiunea de bază a fișierelor utilizator și a fișierelor administrator sunt împreună, în versiunea avansată sunt separate în două foldere ca sisteme independente În față Da Backend
Pentru a instala Yii 2.0, trebuie să descărcăm fișierele de pe site-ul Yii Framework 2.0 de pe următoarea adresă URL Yii 2.0 Basic și Yii 2.0 Advanced.
Odată descărcat dezarhivăm fișierul și copiem folderul avansat de pe serverul nostru local și îl redenumim cu numele proiectului nostru web, în ​​acest caz îl numim yiidemo.
Apoi, de la terminal, trebuie să instalăm fișierele structurii web pentru aceasta, executăm următoarele:
 sudo php init
Ne va întreba dacă dorim să-l rulăm în modul Dezvoltare sau Producție, vom alege Dezvoltare și apoi vom confirma, astfel încât toate structurile implicite necesare să fie copiate.

Dacă mergem la folderul web yiidemo, vom vedea că au fost instalate mai multe foldere și cele două care vor conține fișierele web backend pentru administrator și frontend pentru web-ul public.
Putem vedea Backend-ul într-un browser de pe adresa URL:
http: // localhost / yiidemo / backend / web /

De asemenea, putem vedea șablonul de acasă:
http: // localhost / yiidemo / frontend / web /

MARI

După cum putem vedea, are câteva exemple de pagini, dar autentificarea sau înregistrarea utilizatorului nu sunt funcționale, deoarece nu se conectează la nicio bază de date, dar servesc drept bază de cod pentru a începe, de asemenea, designul este receptiv.
Apoi vom crea baza de date de la phpmyadmin pe care o vom numi yiidemodb.
Tabelul pentru administrator va avea următoarea structură
 - Structura tabelului pentru tabelul `administrator` - CREAȚI TABELUL DACĂ NU EXISTE` administrator` (` id` tinyint (3) NOT NULL, `user` varchar (50) DEFAULT NULL,` key` varchar (50) DEFAULT NULL, `email `varchar (100) DEFAULT NULL) MOTOR = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Dump date pentru tabelul `administrator` - INSERT INTO` administrator` („ id`, „user`,„ parola`, „email`) VALORI (1,„ admin ”,„ admin ”,„ [email protected] '); Apoi va trebui să configurăm pentru a lega baza de date cu Yii pentru aceasta mergem în folderul / common / config și deschidem fișierul main_local.php, aici vor fi configurațiile comune atât pentru backend cât și pentru frontend 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 -> 
Apoi va trebui să creăm modelul, controlerul și vizualizarea administratorului, pentru aceasta vom folosi adresa URL: http: // localhost / yii … index.php? R = gii

După ce ați definit ce tabel dorim să generăm modelul, faceți clic pe butonul Previzualizare pentru a vedea cum ar arăta fișierul și apoi Generați pentru a genera codul.
Apoi mergem la generatorul Crud pentru a crea codul și vizualizarea, controlerul și funcționalitățile minime pentru a interacționa cu tabelul. CRUD este acronimul pentru Create, Get, Update and Delete.

În crud va trebui să definim rutele modelului și controlerului care va fi creat, putem adăuga și un model pentru căutări.
Clasa modelului: backend \ models \ Administrator
Căutați clasa modelului: backend \ models \ Administrator \ Căutare administrator
Clasa controlerului: backend \ controllers \ AdministratorController
Apoi apăsăm Previzualizare și Generare
Apoi putem testa cruditatea pe care o generăm din următoarea adresă URL
http: // localhost / yii … r = administrator

Apoi mergem în folderul \ backend \ config și deschidem fișierul main.php, unde vom modifica următoarea linie de cod:
 'identityClass' => 'modele comune \ Utilizator'
Modificăm pentru modelul nostru de administrator
 'identityClass' => backend \ models \ Administrator
Indicăm că pentru a ne conecta la backend vom folosi modelul Administrator găsit în calea specificată.
Apoi mergem la folderul comun \ models și copiem fișierul LoginForm.php în folderul backend \ models, în acest fel separăm autentificarea care este în formă comună pentru backend și frontend.
Controlerul care invocă datele de conectare este SiteController.php.php, trebuie să deschidem fișierul și să modificăm linia:
 folosiți \ modele \ LoginForm comune; 
Pe linie:
 utilizați backend \ models \ LoginForm;
În acest fel, atunci când formularul este trimis, acesta va căuta LoginForm.php în backend \ models \ Administrator după cum definim mai sus.
Apoi trebuie să modificăm LoginForm pentru a-l adapta la modelul de administrator după cum urmează:
 getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ atribut, 'Nume de utilizator sau parolă incorecte.'); }} login funcție publică () {if ($ this-> validate ()) {echo 'salut'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else {return false; }} // funcție care caută un utilizator prin funcția protejată de numele său de utilizator getUser () {if ($ this -> _ user === null) {// dacă există, obține o matrice cu toate datele $ this -> _ user = Administrator :: findByUsername ($ this-> username); } returnează $ this -> _ utilizator; }}?> var13 -> 
Apoi modificăm modelul de administrator generat și îl vom adăuga IdentityInterface care este o clasă care oferă diverse funcții avansate de securitate pentru controlul accesului. În acest caz, exemplul nostru este simplu, dar trebuie să le implementăm chiar dacă nu le folosim.
 50], [['email'], 'string', 'max' => 100]]; } // Câmpuri de tabel atribut funcție publică Etichete () {return ['id' => 'ID', 'user' => 'Utilizator', 'parolă' => 'Parolă', 'e-mail' => 'E-mail',]; } // funcție predefinită în IdentityInterface pentru a găsi utilizator după nume funcție statică publică findByUsername ($ nume utilizator) {return static :: findOne (['user' => $ nume utilizator]); } / funcție predefinită în IdentityInterface pentru a căuta funcția publică cheie validatePassword ($ parolă) {return static :: findOne (['key' => $ parolă]); } // funcție predefinită în IdentityInterface pentru a găsi utilizatorul după id funcție statică publică findIdentity ($ id) {return static :: findOne ($ id); } // funcție predefinită în IdentityInterface pentru a căuta utilizatorul după marker sau token funcție statică publică findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Returnează funcția publică ID utilizator getId () {return $ this-> id; } // Returnează o cheie care poate fi utilizată pentru a verifica validitatea unei funcții publice ID getAuthKey () {// returnează $ this-> auth_key; } // Validați cheia returnată de funcția anterioară. funcție publică validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }} 
Apoi trebuie să schimbăm aspectul în backend \ view \ layout, deschidem fișierul main.php
Căutăm liniile de cod:
 // Modificăm numele webului Compania mea NavBar :: begin (['brandLabel' => 'Compania mea', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-invers navbar-fixed-top',],]); 'brandLabel' => 'Compania mea', ne schimbăm în 'brandLabel' => 'Demo-ul meu Yii', // Dacă sunt conectat, afișez linkul Conectare dacă (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Autentificare', 'url' => ['/ site / login']]; } else {// Dacă nu sunt, voi afișa alte link-uri în meniul $ menuItems [] = ['label' => 'Deconectare ('. Yii :: $ app-> utilizator-> identitate-> nume de utilizator. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; } 
Aici schimbăm utilizatorul
 'label' => 'Deconectare ('. Yii :: $ app-> utilizator-> identitate-> nume de utilizator. ')',
Modificăm pentru câmpul nostru de utilizator
 'label' => 'Deconectare ('. Yii :: $ app-> utilizator-> identitate-> utilizator. ')',
În cele din urmă ne putem conecta:
http: // localhost / pro … mo / backend / web /
  • Utilizator admin
  • Cheie admin

MARI

Pagina principală este modificată din \ backend \ views \ site.
Într-un alt tutorial vom vedea cum să schimbăm designul paginii principale, să creăm meniuri, să legăm pagini și să adăugăm funcționalități. Fii atent și urmărește-mă dacă ești interesat.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave