Baza de date Nette
Nette Database este un strat de bază de date puternic și elegant pentru PHP, cu accent pe simplitate și caracteristici inteligente. Acesta oferă două moduri complementare de a lucra cu datele dvs. – utilizând Explorer pentru dezvoltare rapidă sau modul SQL pentru control deplin asupra interogărilor.
Calea SQL
- Interogări sigure, parametrizate
- Control precis asupra structurii interogărilor SQL
- Ideal pentru scrierea de interogări complexe cu funcții avansate
- Optimizarea performanței utilizând funcții SQL specifice
Calea exploratorului
- Dezvoltare rapidă fără a scrie SQL
- Gestionarea intuitivă a relațiilor dintre tabele
- Optimizarea automată a interogărilor
- Excelent pentru interacțiuni rapide și convenabile cu baza de date
Instalare
Puteți descărca și instala biblioteca utilizând Composer:
Baze de date acceptate
Nette Database suportă următoarele baze de date:
Server de baze de date | Nume DSN | Suport Explorer |
---|---|---|
MySQL (>= 5.1) | mysql | DA |
PostgreSQL (>= 9.0) | pgsql | DA |
SQLite 3 (>= 3.8) | sqlite | DA |
Oracle | oci | NU |
MS SQL (PDO_SQLSRV) | sqlsrv | DA |
MS SQL (PDO_DBLIB) | mssql | NU |
ODBC | odbc | NU |
Două abordări ale lucrului cu baza de date
Cu Nette Database, puteți scrie interogări SQL direct (metoda SQL) sau puteți lăsa ca SQL să fie generat automat (metoda Explorer). Să vedem cum ambele abordări rezolvă aceleași sarcini:
Metoda SQL – Scrierea interogărilor SQL
Explorer way – Generarea automată a SQL
Abordarea Explorer generează și optimizează automat interogările SQL. În exemplul de mai sus, exemplul SQL way generează N+1 interogări (una pentru autori și una pentru cărțile fiecărui autor), în timp ce Explorer efectuează doar două interogări optimizate – una pentru autori și alta pentru toate cărțile acestora.
Puteți combina liber ambele abordări în aplicația dvs. în funcție de necesități.
Conectare și configurare
Pentru a vă conecta la baza de date, creați pur și simplu o instanță a clasei Nette\Database\Connection:
Parametrul $dsn
(Data Source Name) urmează același format utilizat de PDO, de exemplu,
host=127.0.0.1;dbname=test
. În cazul în care conexiunea eșuează, se aruncă clasa
Nette\Database\ConnectionException
.
Cu toate acestea, o metodă mai convenabilă este de a utiliza configurația aplicației.
Adăugați o secțiune database
, iar obiectele necesare vor fi create, inclusiv un panou pentru baza de date în Tracy Debug Bar.
După aceasta, obiectul conexiune poate fi preluat ca serviciu din containerul DI, de ex:
Pentru mai multe informații, consultați configurarea bazei de date.
Crearea manuală a exploratorului
Dacă nu utilizați containerul Nette DI, puteți crea manual o instanță a Nette\Database\Explorer
:
Gestionarea conexiunilor
Atunci când creați un obiect Connection
, acesta se conectează automat la baza de date. Dacă doriți să
întârziați conectarea, activați modul leneș în configurare prin setarea lazy
,
sau procedați astfel:
Pentru a gestiona conexiunea, utilizați metodele connect()
, disconnect()
, și
reconnect()
.
connect()
stabilește o conexiune dacă aceasta nu a fost deja stabilită și poate arunca un mesajNette\Database\ConnectionException
.disconnect()
se deconectează de la baza de date.reconnect()
se deconectează și apoi se reconectează la baza de date și poate genera, de asemenea, o eroareNette\Database\ConnectionException
.
În plus, puteți monitoriza evenimentele de conectare utilizând evenimentul onConnect
, care este o matrice de
callback-uri executate după conectarea la baza de date.
Bara de depanare Tracy
Dacă utilizați Tracy, panoul Database din Debug Bar este activat automat. Acesta afișează toate interogările executate, parametrii acestora, timpul de execuție și locația din cod în care au fost apelate.
