Doğru Kullanım İşlemleri
webman, veritabanı işlemlerini diğer çerçevelerle aynı şekilde kullanır, burada dikkat edilmesi gereken noktaları listeleyeceğiz.
Kod Yapısı
Kod yapısı diğer çerçevelere benzerdir, örneğin Laravel kullanımı (think-orm benzer)
Db::beginTransaction();
try {
// ..işleme detayları...
Db::commit();
} catch (\Throwable $exception) {
Db::rollBack();
}
Burada özellikle dikkat edilmesi gereken nokta, mutlaka \Throwable
kullanılması gerektiğidir; \Exception kullanılamaz, çünkü işleme sürecinde Error
tetiklenebilir, bu Exception
'a ait değildir.
Veritabanı Bağlantısı
İşlem sırasında model üzerinde işlem yapılırken, modelin bağlantı ayarlarının yapıldığından emin olunması gerekir. Eğer model bağlantı ayarı yaptıysa, işlem açılırken bağlantı belirtilmelidir, aksi halde işlem geçersiz olur (think-orm benzer). Örneğin:
<?php
namespace app\model;
use support\Model;
class User extends Model
{
// Burada modele bir bağlantı belirtiliyor
protected $connection = 'mysql';
protected $table = 'users';
protected $primaryKey = 'id';
}
Model bir bağlantı belirtilmişse, işlem açma, onaylama ve geri alma işlemlerinde bağlantı belirtilmelidir.
Db::connection('mysql')->beginTransaction();
try {
// İşlem
$user = new User;
$user->name = 'webman';
$user->save();
Db::connection('mysql')->commit();
} catch (\Throwable $exception) {
Db::connection('mysql')->rollBack();
}
Gönderilmeyen İşlemleri Bulma
Bazen iş kodundaki bir hata, belirli bir isteğin işlemi yapılmadığında, hangi kontrolör yönteminin işlemi göndermediğini hızlıca bulmak için webman/log
bileşenini yükleyebilirsiniz. Bu bileşen, istek tamamlandıktan sonra otomatik olarak gönderilmeyen işlemleri kontrol eder ve günlüğe kaydeder, günlük anahtar kelimesi Uncommitted transactions
'dır.
webman/log yükleme yöntemi
composer require webman/log
Dikkat
Yükledikten sonra yeniden başlatmanız gerekir, yeniden yükleme etkili olmaz.