Müşteri Sitesi Verisi ve Kapıları

1.7k görüntülenme Markdown

Müşteri sitesinin ekran dışı kancaları: veriyi değiştiren 42 filtre, işlem durduran 10 kapı ve olay bildiren 30 kanca.

Genel Bakış

Ekran kancaları HTML ekler. Buradaki kancalar ise sayfanın ne göstereceğine karar veren veriye dokunur, bir işlemi durdurur ya da olup biteni bildirir.

Üçünün ayrımı işinizi nereye yazacağınızı belirler. Listeye satır eklemek istiyorsanız filtre, spam yorumu durdurmak istiyorsanız kapı, dış sisteme haber vermek istiyorsanız olay kancası kullanılır.

Referans

Veriyi değiştirenler

Kırk iki filtrenin en çok kullanılanları. Çoğu değeri referansla verir; kancanın kaydındaki Ref sütunu hangisinin değiştirilebildiğini söyler.

filter:client.page.output Sayfanın tamamlanmış çıktısı — en geniş müdahale noktası. Değer yerinde, referansla değişir; dönüş kullanılmaz.
filter:client.menu Site menüsünün ağacı. Değer referansla değişir; dönüş kullanılmaz.
filter:client.breadcrumb Sayfa yolu şeridi. Değer referansla değişir; dönüş kullanılmaz.
filter:client.dashboard.panels Hesap panosundaki paneller. Değer referansla değişir; dönüş kullanılmaz.
filter:client.dashboard.alerts Panodaki uyarı şeritleri. Değer referansla değişir; dönüş kullanılmaz.
filter:client.list.rows Liste satırları — hizmet, fatura, alan adı listeleri. Değer referansla değişir; dönüş kullanılmaz.
filter:client.service_detail.data Hizmet detayının verisi. Değer referansla değişir; dönüş kullanılmaz.
filter:client.domain_detail.data Alan adı detayının verisi. Değer referansla değişir; dönüş kullanılmaz.
filter:client.invoice_view_data Fatura görüntüsünün verisi. Değer referansla değişir; dönüş kullanılmaz.
filter:client.invoice.taxed_download Müşterinin resmileştirilmiş e-fatura dosyasını fatura sayfasından indirip indiremeyeceği. Değer false başlar; belgeyi kesen entegrasyon referansla true yapar, buton ve indirme ucu görünür. Dönüş kullanılmaz.
filter:client.payment_methods Müşteriye sunulan ödeme yöntemleri. Değer referansla değişir; dönüş kullanılmaz.
filter:client.theme Kullanılacak tema. Değer referansla değişir; dönüş kullanılmaz.
filter:client.routes Site yolları. Değer referansla değişir; dönüş kullanılmaz.

Durduranlar

On kapı. Hepsi aynı sözleşmeyle çalışır: boş olmayan bir string döndürmek işlemi durdurur ve o metin müşteriye hata olarak gösterilir.

gate:client.page_access Bir sayfaya erişim. Dolu dönüş isteği keser; yönlendiren bir dinleyici isteği kendi bitirmelidir.
gate:client.contact_submit İletişim formunun kaydı. Dolu dönen ilk dinleyici kaydı durdurur.
gate:client.blog_comment Blog yorumunun kaydı. Dolu dönen ilk dinleyici kaydı durdurur.
gate:client.api_key_create Müşterinin yeni API anahtarı açması. Dolu dönüş işlemi durdurur.

Bildirenler

Otuz olay kancasının çoğu müşterinin hesabında yaptığı işleri bildirir: anahtar açma, yorum yazma, form gönderme.

action:client.api_key_created Müşteri yeni bir API anahtarı açtı. Dönüş kullanılmaz.
action:client.api_key_revoked Bir anahtar iptal edildi. Dönüş kullanılmaz.
action:client.blog_comment_added Bir blog yorumu kaydedildi. Dönüş kullanılmaz.
action:client.data_prepared Sayfa verisi hazırlandı, çizim başlamak üzere. Dönüş kullanılmaz; veri eklemek için addData() kullanın.

Üç sözleşme yan yana

coremio/hooks/acme-client.php
// FILTRE: panoya kendi panelini ekle (referansla)
Hook::add('filter:client.dashboard.panels', 10, function (&$panels) {
    $panels[] = ['title' => 'Acme', 'body' => AcmePanel::html()];
});

// KAPI: spam skoru yuksekse yorumu durdur
Hook::add('gate:client.blog_comment', 10,
    function ($owner_id, $parent_id, $message) {
        if (Spam::score($message) > 80) return 'Yorumunuz kaydedilemedi.';
        return null;
    });

// OLAY: acilan anahtari denetim kaydina yaz
Hook::add('action:client.api_key_created', 10, function ($owner_id, $new_id, $perms) {
    Audit::keyOpened($owner_id, $new_id, $perms);
});

Tuzaklar

Sahip kimliği kancadan gelir, oturumdan değil

Müşteri kancalarının çoğu ilk parametrede hesap kimliğini verir. Onu kullanın. Oturumdan okumaya çalışmak alt hesap ve hesap değiştirme akışlarında yanlış kişiyi getirir; API üzerinden gelen çağrıda ise oturum hiç yoktur.

Kapı tek savunma değildir

Bir kapı yalnız o akışta çalışır. Aynı iş API üzerinden de yapılabiliyorsa oradaki yol bu kapıdan geçmeyebilir. Bir kuralı gerçekten dayatmak istiyorsanız kapının hangi çağrı yollarını kapsadığını kancanın kaydından doğrulayın.

Sayfa çıktısı kancası her istekte çalışır

Sayfanın tamamlanmış çıktısına dokunan filtre her sayfa görüntülemesinde çalışır. İçinde ağır bir sorgu ya da dış çağrı yaparsanız bedelini bütün site öder. Ağır işi önbelleğe alın; dinleyicide yalnız hazır sonucu kullanın.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.