Podatkovna zbirka Nette
Nette Database je zmogljiv in eleganten sloj podatkovne zbirke za PHP, ki se osredotoča na preprostost in pametne funkcije. Ponuja dva dopolnjujoča se načina dela s podatki – z uporabo Raziskovalca za hiter razvoj ali na način SQL za popoln nadzor nad poizvedbami.
Način SQL
- Varne, parametrirane poizvedbe
- Natančen nadzor nad strukturo poizvedb SQL
- Idealno za pisanje zapletenih poizvedb z naprednimi funkcijami
- Optimizacija zmogljivosti z uporabo posebnih funkcij SQL
Raziskovalna pot
- Hiter razvoj brez pisanja SQL
- Intuitivno upravljanje razmerij med tabelami
- Samodejna optimizacija poizvedb
- Odlično za hitro in priročno interakcijo s podatkovno bazo
Namestitev
Knjižnico lahko prenesete in namestite s programom Composer:
Podprte zbirke podatkov
Podatkovna baza Nette podpira naslednje podatkovne baze:
Strežnik zbirke podatkov | Ime DSN | Podpora raziskovalca | |
---|---|---|---|
MySQL (>= 5.1) | mysql | DA | |
PostgreSQL (>= 9.0) | pgsql | DA | |
SQLite 3 (>= 3.8) | sqlite | DA | DA |
Oracle | oci | NE | |
MS SQL (PDO_SQLSRV) | sqlsrv | DA | |
MS SQL (PDO_DBLIB) | mssql | NE | |
ODBC | odbc | NE | NE |
Dva pristopa k delu s podatkovno bazo
V podatkovni zbirki Nette lahko poizvedbe SQL pišete neposredno (način SQL) ali pustite, da se SQL generira samodejno (način Explorer). Oglejmo si, kako oba pristopa rešujeta iste naloge:
Način SQL – pisanje poizvedb SQL
Raziskovalni način – Samodejno generiranje SQL
Pristop Raziskovalec samodejno generira in optimizira poizvedbe SQL. V zgornjem primeru zgled načina SQL ustvari N+1 poizvedb (eno za avtorje in eno za knjige vsakega avtorja), medtem ko Raziskovalec izvede le dve optimizirani poizvedbi – eno za avtorje in drugo za vse njihove knjige.
Oba pristopa lahko po potrebi poljubno kombinirate v svoji aplikaciji.
Povezava in konfiguracija
Če se želite povezati s podatkovno zbirko, preprosto ustvarite primerek razreda Nette\Database\Connection:
Parameter $dsn
(ime vira podatkov) ima enako obliko, kot jo uporablja PDO, npr.
host=127.0.0.1;dbname=test
. Če povezava ne uspe, se vrže razred
Nette\Database\ConnectionException
.
Vendar je priročnejša metoda uporaba konfiguracije aplikacije. Dodajte razdelek
database
in ustvarjeni bodo potrebni objekti, vključno s ploščo podatkovne zbirke v Tracy Debug Bar.
Po tem lahko objekt povezave pridobite kot storitev iz vsebnika DI, npr:
Za več informacij glejte Konfiguracija podatkovne baze.
Ročno ustvarjanje Raziskovalca
Če ne uporabljate vsebnika Nette DI, lahko ročno ustvarite primerek Nette\Database\Explorer
:
Upravljanje povezav
Ko ustvarite objekt Connection
, se ta samodejno poveže s podatkovno bazo. Če želite povezavo odložiti, v konfiguraciji omogočite leni način z nastavitvijo lazy
, ali pa to storite na
naslednji način:
Za upravljanje povezave uporabite metode connect()
, disconnect()
in reconnect()
.
connect()
vzpostavi povezavo, če še ni bila vzpostavljena, in lahko vrže metodoNette\Database\ConnectionException
.disconnect()
prekine povezavo s podatkovno zbirko.reconnect()
prekine povezavo in se nato ponovno poveže s podatkovno zbirko, pri čemer lahko vrže tudiNette\Database\ConnectionException
.
Poleg tega lahko spremljate dogodke povezave z uporabo dogodka onConnect
, ki je niz povratnih klicev, izvedenih
po vzpostavitvi povezave s podatkovno bazo.
Tracy Debug Bar
Če uporabljate program Tracy, je plošča Podatkovna baza v vrstici za odpravljanje napak samodejno omogočena. Na njej so prikazane vse izvedene poizvedbe, njihovi parametri, čas izvedbe in mesto v kodi, kjer so bile poklicane.
