KKUT Docs

Bağlantı Ayarları

Veritabanı sürücüsünü, karakter setini ve bağlantı zaman aşımı değerlerini yapılandırın.

This article is currently available in Turkish. Its English translation is being prepared.

Veritabanı ayarları projenin Config/Database.php dosyasında tutulur. KUT projeleri farklı bağlantı profilleri tanımlayabilir.

MySQLi örneği

'database' =>
[
    'driver'         => 'mysqli',
    'host'           => 'localhost',
    'database'       => 'blog',
    'user'           => 'root',
    'password'       => '',
    'charset'        => 'utf8mb4',
    'collation'      => 'utf8mb4_unicode_ci',
    'connectTimeout' => 5,
    'readTimeout'    => 15
]

Zaman aşımı ayarları

connectTimeout, bağlantı kurulurken; readTimeout ise sunucudan cevap beklerken uygulanır. Yanıt vermeyen bir veritabanının PHP işçisini süresiz tutmasını engeller.

Güvenlik: Canlı parola ve erişim bilgilerini public depoya yazmayın. Ortama göre yüklenen yerel yapılandırma veya güvenli ortam değişkeni kullanın.

totalRows() davranışı

totalRows(true) yeni bir COUNT sorgusu çalıştırmaz. Son derlenmiş sorguyu limitsiz olarak yeniden çalıştırır ve where durumunu sıfırlamaz.

// Yanlış: sorgu henüz derlenmedi, koşul yok sayılır
$total = Table::where('status', 'active')->totalRows(true);

// Doğru: önce çalıştır, sonra say
$request = Table::where('status', 'active');
$rows    = $request->result();
$total   = $request->totalRows(true);

// Satır içi kullanım da doğrudur
$total = Table::where('status', 'active')->get()->totalRows(true);
Neden önemli: Çalıştırılmamış bir istek üzerinde çağrıldığında yalnızca bayat bir sayı dönmez; biriken where koşulu bağlantı üzerinde kalır ve sonraki sorgulara sızabilir. Bağlantı Singleton olduğundan derlenmiş sorgu istek boyunca paylaşılır.
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.