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.