Configurarea aplicației pe cakephp 3, blogul despre cakephp

Configurarea aplicației

Parametrii de configurare sunt de obicei stocați în fișierele PHP sau INI și încărcate în timpul descărcării inițiale a aplicației. CakePHP vine cu un fișier de configurare implicit, dar dacă este necesar, puteți adăuga fișiere de configurare suplimentare și le puteți utiliza atunci când bootați aplicația. Cake \ Core \ Configure este utilizat pentru configurația globală, iar clasele de tip Cache se bazează pe metodele config (). ceea ce face setarea simplă și ușor de înțeles.







Descărcați fișiere de configurare suplimentare

Dacă aplicația are mai multe opțiuni de configurare, poate fi utilă împărțirea configurației în mai multe fișiere. După crearea fiecărui fișier din directorul dvs., config /. acestea ar trebui să fie încărcate în bootstrap.php:

De asemenea, puteți utiliza fișiere de configurare suplimentare pentru a vă asigura că mediul este redefinit. Fiecare fișier descărcat după app.php poate suprascrie valorile declarate anterior, permițându-vă să configurați configurația pentru mediile de dezvoltare sau pentru mediile de așteptare.

Configurație generală

Următoarea este o descriere a variabilelor de mediu și a efectului acestora asupra aplicației dvs. CakePHP.

Debug Modifică rezultatul informațiilor de depanare. False = Nu există mesaje de eroare sau de avertizare. True = Debug, care afișează erori și avertismente. Spațiu de nume în care sunt localizate clasele de aplicații.

Important! Dacă modificați spațiul de nume în configurație, va trebui, de asemenea, să actualizați fișierul composer.json. astfel încât să puteți folosi acest spațiu de nume. În plus, creați un autoloader nou, executând php compiler.phar dumpautoload din linia de comandă.

Următoarele secțiuni se aplică, de asemenea, configurației generale:

  • Configurarea bazei de date;
  • Configurarea cache;
  • Configurarea gestionării erorilor și a excepțiilor;
  • Configurație de logare;
  • Configurați mesajele e-mail;
  • Sesiunea de configurare;
  • Configurarea schimbării formei de cuvânt (Inflector);
  • Modul de configurare a rutei.

Căi suplimentare de clasă

Căile de acces suplimentare sunt configurate prin intermediul autoloaderilor aplicației. Când utilizați Composer pentru a genera un autoloader pentru a oferi căi de rezervă pentru controlori, trebuie să faceți următoarele (fișier composer.json):

Intrarea de mai sus va stabili căile pentru spațiul de nume App și App \ Controller. Mai întâi, va fi verificată prima cheie și dacă această cale nu conține clasa / fișierul dorit, va fi căutată a doua cheie. De asemenea, este posibilă maparea unui spațiu de nume la mai multe directoare:

Modalități pentru plugin, șablon de prezentare și localizare

Deoarece pluginurile, șabloanele și localizarea nu sunt clase, ele nu pot fi configurate cu un autoloader. CakePHP oferă trei variabile în configurație dacă aveți nevoie să configurați căi suplimentare pentru aceste resurse. În config / app.php puteți ajusta variabilele corespunzătoare:

Configurați clasa

Clasa CakePHP Configure (Configurare CakePHP) poate fi utilizată pentru a stoca și a prelua anumite aplicații sau valori runtime. Aveți grijă, această clasă vă permite să stocați orice în ea și apoi să o utilizați în orice altă parte a codului dvs. adevărata ispită este să spargeți șablonul MVC dezvoltat în CakePHP. Scopul principal al clasei Configure este de a stoca variabilele centralizate care pot fi partajate de diferite obiecte. Nu uitați să urmați acest principiu și nu veți rupe structura MVC a dezvoltatorilor.

Puteți accesa clasa Configure din orice punct al aplicației scriind următorul cod:

Înregistrarea datelor de configurare

static Cake \ Core \ Configure :: scrie (cheia $, valoarea $)

Utilizați write () pentru a stoca date în configurația aplicației:

Fiți atenți! Notația punctului folosită în parametrul cheie $. poate fi folosit pentru a organiza setările de configurare în grupuri logice.

Exemplul de mai sus poate fi scris și într-un singur apel:

Puteți folosi Configure :: write ('debug', $ bool) pentru a comuta între modurile de depanare și de producție, care se numește - în zbor. Acest lucru este util în special pentru interacțiunea JSON, atunci când informațiile de depanare pot cauza probleme cu parsarea sintaxelor.

Citirea datelor de configurare

static Cake \ Core \ Configurare :: citește ($ key = null)

Folosit pentru a citi datele de configurare din aplicație. Datele pentru cheia specificată sunt returnate. Pentru exemplul de mai sus, unde a fost folosită metoda write (), putem citi datele înregistrate după cum urmează:

Dacă cheia $ nu este specificată, metoda returnează toate valorile Configurează.

static Cake \ Core \ Configurare :: readOrFail (cheia $)

Citește datele de configurare în același mod ca și Cake \ Core \ Configure :: read. dar se așteaptă să găsească o pereche cheie / valoare. În cazul în care perechea solicitată nu există, RuntimeException va fi aruncată:

Atenție, vă rog. nou în versiunea 3.1.7: Configurare :: readOrFail () adăugată de la versiunea 3.1.7

Verificați dacă sunt definite datele de configurare

static Cake \ Core \ Configure :: check (cheia $)

Folosit pentru a verifica dacă există o cheie / cale, returnează adevărat sau fals:

Ștergerea datelor de configurare

static Cake \ Core \ Configurare :: ștergeți (cheia $)

Se utilizează pentru ștergerea informațiilor din configurația aplicației:

Citirea și ștergerea în continuare a datelor de configurare

static Cake \ Core \ Configurare :: consum (cheia $)

Citirea și ștergerea cheii din configurație. Acest lucru este util atunci când doriți să combinați citirea și ștergerea valorilor într-o singură operație.

Citirea și scrierea fișierelor de configurare

static Cake \ Core \ Configurare :: config ($ name, $ engine)

Puteți utiliza mai multe mecanisme conectate la Configurare pentru a citi diferite tipuri de fișiere de configurare din diferite surse. Puteți interacționa cu mecanismele conectate utilizând câteva metode suplimentare în Configurare. Pentru a verifica ce mecanisme de configurare sunt conectate, folosiți Configure :: configured ():







static Cake \ Core \ Configurare :: drop ($ nume)

De asemenea, puteți șterge mecanismele conectate. Configurare :: drop ('default') va elimina mecanismul care are aliasul "implicit". Orice încercări ulterioare de descărcare a fișierelor de configurare pentru acest mecanism va eșua:

Descărcarea fișierelor de configurare

static Cake \ Core \ Configurare :: încărcare ($ key, $ config = 'default', $ merge = true)

După ce ați conectat mecanismul corespunzător la Configurare, puteți descărca fișierele de configurare:

Fișierele de configurare încărcate combină datele acestora cu configurația existentă în Configurare. Acest lucru vă permite să suprascrieți sau să adăugați valori noi la setările aplicației existente. Dacă setați $ merge la true, valorile nu vor fi suprascrise, ci vor fi combinate cu configurația existentă.

Creați sau modificați fișiere de configurare

static Cake \ Core \ Configure :: dump ($ cheie, $ config = 'implicit', $ keys = [])

Descărcarea totală sau parțială a datelor din Configurare într-un fișier sau sistem de stocare care este acceptat de motorul de configurare. Formatul serializării este determinat de mecanismul conectat, al cărui alias este specificat în $ config. De exemplu, dacă aliasul "implicit" al mecanismului este Cake \ Core \ Configure \ Engine \ PhpConfig. apoi fișierul generat va fi un fișier de configurare PHP încărcat de Cake \ Core \ Configure \ Engine \ PhpConfig

Dacă mecanismul "implicit" este o instanță a PhpConfig. Toate datele Configurare de configurare vor fi salvate în fișierul my_config.php:

Doar configurația de gestionare a erorilor va fi păstrată:

Configure :: dump () este folosit pentru schimbarea sau suprascrierea fișierelor de configurare care pot fi citite mai târziu folosind Configure :: load ().

Salvarea unei configurații runtime

static Cake \ Core \ Configurare :: stocare ($ name, $ cacheConfig = 'default', $ data = null)

De asemenea, puteți salva valorile de configurare în execuție (Runtime) pentru a fi utilizate într-o interogare viitoare. Deoarece Configure doar memorează valorile pentru cererea curentă, va trebui să salvați orice informație de configurare modificată dacă doriți să o utilizați mai târziu:

Datele sunt stocate în memoria cache conform configurației.

Restaurarea unei configurații salvate în Runtime

static Cake \ Core \ Configurare :: restaura ($ name, $ cacheConfig = 'implicit')

După ce ați salvat valorile de configurare pentru timpul de execuție, este posibil să fie necesar să le restaurați pentru o utilizare ulterioară. Configure :: restore () face exact acest lucru:

Când restaurați informațiile de configurare, este important să rețineți că este restaurată utilizând aceeași cheie și numele configurației cache-ului care a fost utilizată pentru ao salva. Informațiile recuperate sunt fuzionate peste configurația Runtime existentă.

Crearea propriilor mecanisme de configurare

Deoarece configurația este o parte extensibilă a CakePHP, puteți crea propriile mecanisme în aplicațiile și plug-in-urile dvs. Mecanismele create trebuie să implementeze Cake \ Core \ Configure \ ConfigEngineInterface. Această interfață implică crearea unei metode de citire ca singura metodă necesară. Dacă doriți să utilizați fișiere de configurare XML, puteți crea un mecanism simplu de configurare Xml pentru aplicația dvs.:

În config / bootstrap.php puteți conecta motorul nou creat și apoi îl puteți folosi:

Metoda read () din modulul de configurare trebuie să returneze o serie de informații de configurație care conțin o resursă numită cheie $.

Definește interfața utilizată de clasele care citesc datele de configurare și le stochează în Configure

Parametri: $ key (șir) - Numele sau identificatorul cheii pentru descărcare.

Această metodă ar trebui să încarce / analizeze datele de configurare identificate de cheia cheie $ și să returneze o gamă de date din fișierul de configurare.

Cake \ Core \ Configure \ ConfigEngineInterface :: dump (cheia $, array $ data)

Parametrii: $ key (șir) - identificatorul (numele fișierului) unde va fi înregistrată; $ date (array) - date pentru dump (record).

Această metodă trebuie să stocheze datele de configurare furnizate într-un fișier numit de cheia identificată de cheia $ cheie.

Mecanisme de configurare încorporate

Fișierele de configurare PHP

Încărcarea fișierului de configurare (customConfig.php) se face prin introducerea următorului cod în config / bootstrap.php:

Ini fișiere de configurare

  • Împărțirea punctelor de valori va fi transformată în matrice;
  • Valorile booleene, cum ar fi "on" și "off", sunt convertite în valori booleene "true" și "false".

Un exemplu de conținut al fișierului ini este prezentat mai jos:

Acest exemplu de ini-fișier va avea ca rezultat aceleași date de configurare finală ca și exemplul PHP de mai sus. Structurile array pot fi create fie prin valori separate prin puncte, fie prin secțiuni. Secțiunile pot conține, de asemenea, taste separate pentru puncte pentru cuibărire mai profunde.

Json fișierele de configurare

Vă permite să ștergeți / citiți fișiere de configurare. Json, informațiile în care sunt stocate ca șiruri de caractere JSON.

Un exemplu de conținut al fișierului json este dat mai jos:

CakePHP boot (Bootstrapping)

Dacă aveți cerințe de configurare suplimentare, trebuie să le adăugați în fișierul config / bootstrap.php al aplicației. Fișierul config / bootstrap.php este conectat înainte de fiecare cerere și comandă prin CLI.

Acest fișier este ideal pentru o serie de sarcini comune de bootstrap:

Ar putea fi tentant să plasați aici funcții de formatare pentru a le folosi în controlori. După cum veți vedea în secțiunile "Controlere" și "Vizualizări", există modalități mai bune de a adăuga o logică personalizată în aplicația dvs.

Aplicație :: bootstrap ()

În plus față de fișierul config / bootstrap.php. care ar trebui să utilizați pentru setările de aplicații de nivel scăzut, puteți utiliza, de asemenea, metoda Application :: bootstrap () pentru a încărca / inițializa modulele plug-in și a atașa ascultătorii globali de evenimente:

Variabile de mediu

Unii dintre furnizorii de soluții cloud de astăzi, cum ar fi Heroku, vă permit să definiți variabilele de mediu. După definirea variabilelor de mediu, puteți personaliza proiectul CakePHP ca o aplicație cu 12 factori (aplicația 12factor). În urma instrucțiunilor 12factor app. Puteți crea o aplicație fără un apatrid și simplificați implementarea acesteia. Aceasta înseamnă, de exemplu, că, dacă trebuie să modificați conexiunea la baza de date, trebuie doar să modificați variabila DATABASE_URL în configurația gazdă fără a trebui să o modificați în codul sursă.

Plecând de la cele de mai sus, în fișierul app.php. puteți vedea următoarele variabile:

  • DEBUG (0 sau 1);
  • APP_ENCODING (adică UTF-8);
  • APP_DEFAULT_LOCALE (adică en_US);
  • SECURITY_SALT;
  • CACHE_DEFAULT_URL (adică Fișier: ///? Prefix = myapp_serialize = truetimeout = 3600path = ../tmp/cache/);
  • CACHE_CAKECORE_URL (adică Fișier: ///? Prefix = myapp_cake_core_serialize = truetimeout = 3600path = ../tmp/cache/ persistent /);
  • CACHE_CAKEMODEL_URL (adică Fișier: ///? Prefix = myapp_cake_model_serialize = truetimeout = 3600path = .. / tmp / cache / models /);
  • EMAIL_TRANSPORT_DEFAULT_URL (adică smtp: // utilizator: parola @ nume gazdă: port? Tls = nullclient = nulltimeout = 30);
  • DATABASE_URL (adică mysql: // user: pass @ db / my_app);
  • DATABASE_TEST_URL (adică mysql: // user: pass @ db / test_my_app);
  • LOG_DEBUG_URL (adică fișier: ///? Niveluri [] = notelevels [] = infolevels [] = debugfile = debugpath = .. / logs /);
  • LOG_ERROR_URL (adică fișier: ///? Niveluri [] = warninglevels [] = errorlevels [] = criticelevels [] = alertlevels [] = emergencyfile = errorpath = .. / logs /).

După cum puteți vedea în exemple, definim configurația câtorva opțiuni ca șiruri DSN (DSN este numele sursei de date). Aceasta se referă la baze de date, jurnale, transmisii prin e-mail și configurații de cache.

Dacă variabilele de mediu nu sunt definite de dvs., CakePHP va folosi valorile specificate în fișierul app.php. Puteți utiliza biblioteca php-dotenv pentru a utiliza variabilele de mediu în dezvoltarea locală. Pentru mai multe informații, consultați instrucțiunile Readme ale bibliotecii.

Dezactivarea tabelelor partajate

Atunci când se utilizează clase de tabele generice, numite și autotabile, atunci când se creează rapid aplicații noi și modele de coacere este utilă, o clasă de tabele comune poate complica depanarea în anumite scenarii.

Puteți verifica dacă a fost emisă o interogare dintr-o clasă generală de tabele prin DebugKit prin panoul SQL din DebugKit. Dacă tot nu puteți diagnostica problema care poate fi cauzată de autotubinalele, puteți arunca o excepție atunci când CakePHP utilizează implicit genericul Cake \ ORM \ Table în locul clasei dvs. speciale, după cum urmează:







Trimiteți-le prietenilor: