Itproger, ază cu cadru Zend (3

A învăța să lucreze cu Zend_Auth

  1. id INT NOT NULL - identificatorul unic;
  2. numele de utilizator VARCHAR (255) NOT NULL - câmp pentru a stoca autentificare utilizatorului;
  3. Parola VARCHAR (255) NOT NULL - câmpul pentru stocarea unei parole. Notă: În acest tutorial, vom stoca parola în forma obișnuită, fără nici o MD5, săruri și fonduri similare, în scopul de a facilita înțelegerea Zend_Auth;
  4. Rolul VARCHAR (255) NOT NULL - un câmp pentru stocarea unui rol de utilizator;

Inserați codul în phpMyAdmin dvs., iar masa va fi creat cu succes:

Acum, aș dori să se concentreze pe al patrulea câmp, care va conține numele rolului la care unul sau un alt utilizator. În exemplul nostru, vom avea un singur utilizator cu rol numele admin, parola admin si admin 🙂

Pentru a demonstra Zend_Acl avem nevoie este un alt tip de utilizator. Ei vor fi un vizitator regulat pe site-ul nostru - vizitatorul, dar mai mult pe care mai târziu.

Pentru a vă autentifica în sistem și să poată adăuga filmele preferate, administratorul trebuie să completeze formularul cu care avem încă. Deci, să-l creați: deschide un prompt de comandă sau o consolă, mergeți la directorul rădăcină al site-ului dvs. și tastați următoarea comandă:

Această linie creează un nou fișier în dosarul aplicației / formulare. Deschideți nou fișier, pentru a crea un formular pentru a conecta la administratorul de sistem. Asta ne înscriem acolo:

o formă de muncă, am fost în detaliu în ultimul tutorial, astfel încât cei care sunt lăsați în urmă, te sfătuiesc să-l uit. O să-ți spun pe scurt ce facem noi aici: creați o formă care constă din două câmpuri de text pentru numele de utilizator și parola, precum și buton, trimiteți când faceți clic, acesta va verifica autenticitatea administratorului.

Acum, în dosarul de aplicație / controlere, aveți un nou controler cu un set de acțiuni. Prima acțiune pe care le pune în aplicare, se va conecta:

Pentru a crea un obiect Zend_Auth destul de un record: Zend_Auth :: getInstance (); Apoi, folosind o metodă simplă, autentificarea, putem verifica autenticitatea datelor introduse. Pentru a obține rezultatul, poate fi folosit pentru a isValid ().

Acum este momentul pentru a afișa formularul de utilizator. Adăugați următorul cod în fișierul login.phtml situat în aplicație / punctele de vedere / script / auth:

Pentru abordarea acțiune utilizator indicele controler auth nu este blocat într-un ecran alb, face o redirecționare:

Acum este timpul pentru a realiza logoff utilizator foarte. Dacă vă amintiți, pentru că am înființat o acțiune specială:

Faceți cunoștință cu Zend_Acl

distribuție Zend Framework a rolurilor puse în aplicare în mod tradițional în Bootstrap.php, care se află în aplicația director. Acest fișier servește ca un fel de punct de pornire pentru aplicația dumneavoastră. Toate funcțiile la nivel mondial, inițializarea trebuie să fie plasate în dosar. Pentru metoda Bootstrap.php pentru a rula în mod automat, trebuie să specificați prefixul numele _init. Adăugați următorul cod în acest fișier:

Funcția _initAcl inițializează ACL date. În primul rând, vom specifica resursele de site-ul nostru și rolul de a folosi addResource () și addRole (), și apoi a determina ce rolul de ce resurse sunt recurgând la metoda (). Fii atent la procesul de succesiune, care este prezent aici tot timpul. Dacă vom moșteni de administrator oaspeți, înseamnă că totul este Guest disponibil - va fi disponibil și administratorul, dar nu și invers.

Acum, avem nevoie pentru a scrie un plugin care va verifica rolul unui utilizator. De ce un plugin? Adevărul este că trebuie să verificăm a fost efectuat pe fiecare pagină. De aceea, este recomandabil să se creeze un plug-in care va rula înainte de formarea paginii. Ceva de genul o verificare tradițională de la începutul fișierului.

Creați directorul plugins în directorul aplicației și plasați fișierul acolo AccessCheck.php. Conținutul acestui fișier va fi:

Avem nevoie pentru a rula acest cod chiar și atunci când MVC nu pot fuziona împreună - astfel încât vom folosi metoda preDispatch () cu numărul de argumente pe care am trecut, atunci când un plug-in.

Asta e tot. Simplu și eficient.

Sper că va plăcut seria noastră de lecții pe cel mai puternic PHP freymvorku - Zend Framework. Datorită lui, puteți crea un site-uri puternice și de încredere folosind o grămadă de clase de pre-construite pentru cele mai multe sarcini. Imaginați-vă cât de mult ai nevoie de un cod pentru a pune în aplicare o aplicație similară de la zero ...