Obiectul de aplicare (cerere) încapsulează contextul cererii. sarcina sa principală - pentru a colecta informații cu privire la cererea și trece-l la un controler adecvat pentru o prelucrare ulterioară. De asemenea, cererea este un depozit centralizat de configurare a aplicației. Acesta este motivul pentru care obiectul cererii este, de asemenea, numit front-controler.
obiect script-ul aplicației este creat ca o singură intrare (Singleton). instanță a cererii este accesibilă din orice loc prin intermediul Yii :: app ().
1. Configurația aplicației ¶
În mod implicit, aplicația obiect - o instanță a CWebApplication de clasă. care poate fi configurat utilizând un fișier de configurare (sau matrice). Valorile de proprietate necesare sunt stabilite în momentul în care instanța de aplicare. O modalitate alternativă de personalizare aplicare - extinde CWebApplication.
Configurare - este o matrice de perechi cheie-valoare, unde fiecare cheie reprezintă un nume de proprietate instanței cerere, iar valoarea - valoarea inițială a proprietăților corespunzătoare. De exemplu, în această configurație setează numele și proprietățile aplicației defaultController:
Este demn de remarcat faptul că cererea, precum și cele mai multe clase Yii, este o componentă. Acest lucru înseamnă că:
- Nu puteți atribui valori care nu sunt declarate în proprietățile de clasă.
- Aplicația suportă proprietățile declarate prin getters și setteri, este posibil să se configureze proprietatea specificată setImport urmează:
De obicei, configurația este stocată într-un script PHP separat (de exemplu, protejată / config / main.php). Script-ul returnează o configurație matrice:
Pentru a aplica configurația, Yii :: createWebApplication () este necesar să se treacă numele de fișier de configurare ca un argument pentru constructor, sau metoda aplicației. așa cum se arată mai jos. Acest lucru se face de obicei în script-ul de intrare:
Sfat: În cazul în care configurația este foarte complexă, o putem împărți în mai multe fișiere, fiecare revenind o parte din matrice de configurare. Apoi, în fișierul de configurare principal, aveți nevoie pentru a conecta aceste fișiere folosind includ (). și conectați-porțiune din matrice într-o singură configurație de matrice.
2. Directorul aplicațiilor de bază ¶
director de bază cerere se referă la directorul rădăcină care conține toate de bază, în ceea ce privește securitatea, PHP-script-uri și date. În mod implicit, acest subdirector este protejat. situat în directorul care conține scriptul de intrare. Schimbarea locației sale prin instalarea de proprietate basePath în configurația de aplicare.
Conținutul directorului de bază ar trebui să fie protejate de a fi accesate de către utilizatori Web. Dacă utilizați Apache server HTTP server de web acest lucru se poate face prin adăugarea la directorul de bază al .htaccess, după cum urmează:
3. Componentele cererii ¶
Funcționalitatea obiectului aplicație poate fi modificat cu ușurință și extinsă prin arhitectura componente. Se administrează un set de componente de aplicație, fiecare dintre care implementează un set de caracteristici specifice. De exemplu, aplicația generează o procesare a cererii de utilizator folosind componente și CUrlManager CHttpRequest.
Prin modificarea valorii componentelor. Puteți personaliza valorile de clasă și de proprietate ale oricărei componente utilizate de aplicație. De exemplu, puteți configura componenta CMemCache, astfel încât să poată utiliza mai multe servere Memcache pentru caching-:
În acest exemplu am adăugat un element de cache pentru componentele matrice. element de cache indică faptul că clasa de componente este CMemCache. și proprietatea sa servere.
Pentru a accesa o componentă de aplicație, utilizați Yii :: app () -> ComponentID. în cazul în care ComponentID - acest identificator componente (de exemplu, Yii :: app () -> cache).
Componenta poate fi dezactivat prin setarea activat în parametrul de configurare setat la fals. Când vom avea acces la o componentă cu handicap se va întoarce null.
Indicație: În mod prestabilit, componentele aplicației sunt create la cerere. Acest lucru înseamnă că, componenta nu poate fi creat deloc dacă nu este accesat în timpul unei solicitări din partea utilizatorului. Ca urmare, performanța generală de aplicare nu poate fi afectată, chiar și în cazul în care o pluralitate de componente specificate în configurația.
Dacă este necesar, instanțele obligatorii componente creație (de exemplu, CLogRouter), indiferent dacă acestea sunt utilizate sau nu, indică ID-urile lor în proprietățile de configurare ale presarcinii.
4. Componentele cheie ale cererii ¶
Yii predefinește un set de componente de aplicații de bază pentru a oferi caracteristici comune între aplicațiile Web. De exemplu, componenta cerere este utilizat pentru a colecta informații cu privire la cererea utilizatorului, și oferă o varietate de informații, cum ar fi o adresă URL, și cookie-urile. Specificarea proprietăților componentelor, puteți schimba comportamentele implicite ale Yii în aproape fiecare aspect.
Următoarele sunt componentele cheie care sunt pre-clasa CWebApplication:
assetManager. CAssetManager - gestionează publicarea fișierelor de resurse (fișiere de active);
cache. CCache - oferă cache de date; Rețineți că trebuie să specificați clasa reală (de exemplu, CMemCache CDbCache.), Cu excepția cazului în accesarea componentei este returnat nul;
coreMessages. CPhpMessageSource - asigură traducerea mesajelor de bază Yii-cadru;
db. CDbConnection - asigura conexiunea bazei de date; Vă rugăm să rețineți că, pentru a utiliza această funcție, trebuie să setați connectionString de proprietate;
ErrorHandler. CErrorHandler - tratează erorile și excepțiile PHP neînregistrate;
format. CFormatter - formatează datele pentru afișare.
mesaje. CPhpMessageSource - oferă mesaje traduse utilizate de către Yii aplicației;
cerere. CHttpRequest - conține informații despre cererea utilizatorului;
SecurityManager. CSecurityManager - prevede (cum ar fi tocare, criptare) legate de securitate;
sesiune. CHttpSession - asigură funcționalitatea asociată cu sesiunile;
statePersister. CStatePersister - oferă o metodă de conservare a statutului la nivel mondial;
urlManager. CUrlManager - asigură funcționalitatea parsare și formarea URL-ul;
utilizator. CWebUser - reprezintă informațiile de identitate ale utilizatorului curent;
5. Ciclul de viață al aplicării ¶
Aplicarea ciclului de viață în timpul procesării unei cereri de utilizator este după cum urmează:
Pre-provizionare prin aplicarea CApplication :: preinit ().
tratare a erorilor Inițializarea.
Înregistrează-componente de bază.
aplicare a sarcinii de configurare.
- Înregistrează-comportamente de aplicare;
- Încărcați componente de aplicații statice.
- colectarea de informații la cerere;
- crearea controler;
- controler de lansare.