Olaylara Tepki Verme
Entegrasyonunuza hiçbir şey gönderilmez; ya tekrar sorarsınız ya da kendi kodunuzu olayın olduğu yerde çalıştırırsınız.
Genel Bakış
Webhook teslimi yok. Bu bilinçli bir sınır: kurulum sizin uçlarınızın kuyruğunu tutmaz, onlara yeniden denemez ve doğrulayamadığı bir adrese işini sızdırmaz.
Onun yerine iki yaklaşım var ve farklı sorulara cevap veriyorlar.
Seçimi kodunuzun nerede yaşayabileceği belirler. Kurulumun dışındaki entegrasyon yoklama yapar. Kurulumla birlikte gelen bir modül, ek hizmet ya da tema dinler.
Ön Koşullar
- Dinleyici yolu için: kurulumun içine PHP koyabileceğiniz bir yer, ki bu pratikte kendi modülünüz demek.
- İstediğiniz kancanın tam adı. Adlar katalogludur ve var olmayan bir ad sessizce başarısız olur.
Adım Adım
Kancayı Seçin
- Önemsediğiniz anı bu dokümanın Kancalar bölümündeki katalogda bulun.
- Aldığı değerleri ve mekanizmasını okuyun. Bazı kancalar olanı bildirir, bazıları bir değeri değiştirmenize izin verir, üçüncü tür ise bir işlemi tamamen reddedebilir.
- Kaç değer aldığına dikkat edin. Kancanın gönderdiğinden fazlasını tanımlamak dinleyicinizi devre dışı bırakır.
Dinleyici Kaydedin
- Modülünüze bir
hooks.phpkoyun ve dinleyiciyi oraya ekleyin. - Gövdeyi hafif tutun. Birinin isteğinin içinde çalışır; oradaki yavaş iş, bekleyen kişi tarafından hissedilir.
- Yavaş olan her şeyi bir kuyruğa, dosyaya ya da zamanlanmış göreve devredin; dışarıya çağrıyı o yapsın.
Çalıştığını Doğrulayın
- Olayı bir kez gerçekten oluşturun ve sizin tarafınızın gördüğünü onaylayın.
- Hiçbir şey olmadıysa koda dokunmadan önce hata kaydında iki mesaj arayın: biri çalışıp hata veren dinleyiciyi, diğeri sınıf ya da metot adı çözülemeyen dinleyiciyi bildirir.
- İkisi de yoksa ya kanca adı yanlıştır ya da dinleyici bilerek hiçbir şey döndürmüştür.
Örnek
Yeni siparişe tepki veren, onu aynı süreç içinde API üzerinden geri okuyan ve dışarıya çağrıyı kuyruğa bırakan bir dinleyici.
\Hook::add('action:order.created', 10, function (array $order) {
$id = (int) ($order['id'] ?? 0);
if (!$id) return;
// HTTP adresinin sundugu kaynagin ayni: anahtar da ag turu da gerekmez
$full = \WISECP\Api\Kernel::internal('Orders/GetOrder', ['id' => $id]);
if (isset($full['error'])) return;
// kuyruga birakin; birinin odeme adiminin icinden kendi ucunuzu cagirmayin
\Acme\Sync::enqueue('order.created', $full['data']);
});
Tuzaklar
Motor, dinleyicinin fırlattığı her şeyi yakalar, hata kaydına yazar ve sıradakine geçer. Bunun olduğu sayfa, hiçbir dinleyici kayıtlı değilmiş gibi devam eder. "Kodum hiç çalışmıyor" ile "kodum her seferinde hata veriyor" dışarıdan aynı görünür; ikisini ayıran tek yer hata kaydıdır.
Değerler sıraya göre bağlanır ve boş olan atlanır, dolayısıyla sonraki değer onun yerine kayar. İki değer tanımlamış bir dinleyici, hiçbir uyarı almadan ikinci değeri ilk sırada alabilir. Gerçekte ne gönderildiğini katalog kaydından okuyun.
Saniyede bir yoklama, bir anahtarın bütün dakikalık bütçesini bir dakikada harcar. Entegrasyonunuzun kaldırabileceği bir aralık seçin, her çağrı küçük kalsın diye sunucu tarafında süzün ve 429 aldığınızda döngüyü sıkmak yerine durun.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.