Nette Veritabanı
Nette Database, PHP için basitlik ve akıllı özelliklere odaklanan güçlü ve zarif bir veritabanı katmanıdır. Verilerinizle çalışmak için iki tamamlayıcı yol sunar – hızlı geliştirme için Explorer 'ı veya sorgular üzerinde tam kontrol için SQL yolunu kullanarak.
SQL yolu
- Güvenli, parametrelendirilmiş sorgular
- SQL sorgularının yapısı üzerinde hassas kontrol
- Gelişmiş işlevlere sahip karmaşık sorgular yazmak için ideal
- Belirli SQL işlevlerini kullanarak performansı optimize etme
Kaşif yolu
- SQL yazmadan hızlı geliştirme
- Tablolar arasındaki ilişkilerin sezgisel kullanımı
- Otomatik sorgu optimizasyonu
- Hızlı ve kullanışlı veritabanı etkileşimleri için ideal
Kurulum
Composer'ı kullanarak kütüphaneyi indirebilir ve yükleyebilirsiniz:
Desteklenen Veritabanları
Nette Veritabanı aşağıdaki veritabanlarını destekler:
Veritabanı Sunucusu | DSN Adı | Explorer Desteği |
---|---|---|
MySQL (>= 5.1) | mysql | EVET |
PostgreSQL (>= 9.0) | pgsql | EVET |
SQLite 3 (>= 3.8) | sqlite | EVET |
Oracle | oci | HAYIR |
MS SQL (PDO_SQLSRV) | sqlsrv | EVET |
MS SQL (PDO_DBLIB) | mssql | HAYIR |
ODBC | odbc | HAYIR |
Veritabanı Çalışmalarına İki Yaklaşım
Nette Database ile SQL sorgularını doğrudan yazabilir (SQL yolu) ya da SQL'in otomatik olarak oluşturulmasına izin verebilirsiniz (Explorer yolu). Her iki yaklaşımın da aynı görevleri nasıl çözdüğünü görelim:
SQL yolu – SQL Sorguları Yazma
Explorer yolu – Otomatik SQL Oluşturma
Explorer yaklaşımı SQL sorgularını otomatik olarak oluşturur ve optimize eder. Yukarıdaki örnekte, SQL yolu örneği N+1 sorgu üretirken (biri yazarlar için ve biri her yazarın kitapları için), Explorer yalnızca iki optimize edilmiş sorgu gerçekleştirir – biri yazarlar için ve diğeri tüm kitapları için.
Uygulamanızda her iki yaklaşımı da gerektiği gibi özgürce birleştirebilirsiniz.
Bağlantı ve Yapılandırma
Veritabanına bağlanmak için Nette\Database\Connection sınıfının bir örneğini oluşturmanız yeterlidir:
$dsn
(Veri Kaynağı Adı) parametresi, PDO'nun kullandığı biçimle
aynıdır, örneğin host=127.0.0.1;dbname=test
. Bağlantı başarısız olursa,
Nette\Database\ConnectionException
adresini atar.
Ancak, daha uygun bir yöntem uygulama yapılandırmasını kullanmaktır. Bir
database
bölümü ekleyin ve Tracy Hata Ayıklama Çubuğunda bir
veritabanı paneli de dahil olmak üzere gerekli nesneler oluşturulacaktır.
Bundan sonra, bağlantı nesnesi DI konteynerinden bir servis olarak alınabilir, örn:
Daha fazla bilgi için, bkz. veritabanı yapılandırması.
Explorer'ın Manuel Olarak Oluşturulması
Nette DI konteynerini kullanmıyorsanız, Nette\Database\Explorer
adresinin bir örneğini manuel olarak
oluşturabilirsiniz:
Bağlantı Yönetimi
Bir Connection
nesnesi oluşturduğunuzda, veritabanına otomatik olarak bağlanır. Bağlantıyı geciktirmek
istiyorsanız, lazy
adresini ayarlayarak yapılandırmada tembel modu etkinleştirin
veya şu şekilde yapın:
Bağlantıyı yönetmek için connect()
, disconnect()
ve reconnect()
yöntemlerini
kullanın.
connect()
, daha önce kurulmamışsa bir bağlantı kurar ve birNette\Database\ConnectionException
atabilir.disconnect()
veritabanı bağlantısını keser.reconnect()
bağlantısı kesilir ve ardından veritabanına yeniden bağlanır ve ayrıca birNette\Database\ConnectionException
atabilir.
Ayrıca, veritabanına bağlandıktan sonra yürütülen bir dizi geri arama olan onConnect
olayını kullanarak
bağlantı olaylarını izleyebilirsiniz.
Tracy Hata Ayıklama Çubuğu
Tracy kullanıyorsanız, Hata Ayıklama Çubuğundaki Veritabanı paneli otomatik olarak etkinleştirilir. Yürütülen tüm sorguları, parametrelerini, yürütme süresini ve çağrıldıkları koddaki konumu görüntüler.
