Hizmet Yaşam Döngüsü Kancaları

1.7k görüntülenme Markdown

Satılan bir hizmetin ömrü boyunca açılan 101 kanca: kurulum, askı, iptal, yenileme, paket değişikliği ve sağlayıcı modülüyle konuşma.

Genel Bakış

Hizmet, müşterinin satın aldığı şeydir: barındırma paketi, sunucu, yazılım lisansı. Bu alandaki kancalar onun ömrünü izler ve çoğu ikili gelir: bir işlemin önünde bir kapı, ardında bir olay.

Bir bölümü ise hizmeti gerçekten sağlayan modülle ilgilidir. Sunucuda hesap açan, askıya alan, parola değiştiren kod modüldedir; buradaki kancalar o çağrının girdisine ve çıktısına dokunmanızı sağlar.

Referans

Ömür olayları

action:service.created Hizmet açıldı. Dönüşe bakılmaz.
action:service.status_changed Durumu değişti. Dönüşe bakılmaz.
action:service.suspended Askıya alındı. Dönüşe bakılmaz.
action:service.terminated Sonlandırıldı. Dönüşe bakılmaz.
action:service.cancelled İptal edildi. Dönüşe bakılmaz.
action:service.deleted Kaydı silindi. Dönüşe bakılmaz.
action:service.renewed Yenilendi. Dönüşe bakılmaz.
action:service.updowngrade.applied Paket değişikliği uygulandı. Dönüşe bakılmaz.
action:service.updated Kaydı panelden ya da API'den düzenlendi; yazılan kolonlar eski değerleriyle gelir. Dönüşe bakılmaz.

Kapılar

On sekiz kapı. İkisi aynı işin iki yolunu ayırır: modül işlemi panelden çağrıldığında bir kapı, müşteri panelinden çağrıldığında başka bir kapı çalışır. Kuralınız her ikisi için geçerliyse ikisine birden bağlanın.

gate:service.suspend Askıya alma.
gate:service.cancel İptal.
gate:service.delete Silme.
gate:service.upgrade Paket yükseltme.
gate:service.manual_renew Elle yenileme.
gate:service.status_change Durum değişikliği.
gate:service.module_action Modül işlemi — panelden.
gate:service.client_tool Modül işlemi — müşteri panelinden.
gate:service.transfer_request Devir talebi.
gate:service.autorenew_toggle Otomatik yenilemeyi açma ve kapama.

Sağlayıcı modülü

action:service.module_ran Sağlayıcı modülünde bir işlem çalıştı.
filter:service.module_result Modülün döndürdüğü sonuç.
filter:service.build_options Hizmet kurulurken yazılacak yük; içindeki options alanı dizi değil JSON metni olarak gelir. Yük referansla değişir ve kayda değişmiş hâliyle gider; dönüş kullanılmaz.
filter:service.config_fields Hizmetin yapılandırma alanları.
filter:service.module_username Modülde kullanılacak kullanıcı adı.
action:service.password_changed Hizmet parolası değişti.

Detay ekranının verisi

filter:service.detail_data Hizmet detayının verisi.
filter:service.dashboard.cards Hizmet panosundaki kartlar.
filter:service.dashboard.tools Hizmet panosundaki araçlar.
filter:service.detail_tabs_capabilities Detay sekmelerinin hangi yetenekleri göstereceği.
filter:service.upgrade_products Yükseltme için sunulan ürünler.

Kapı ve olay birlikte

coremio/hooks/acme-service.php
// KAPI: odenmemis faturasi olan hizmet askiya alinmasin (once bize sorun).
Hook::add('gate:service.suspend', 10, function ($service) {
    if (Acme::onHold((int) ($service['id'] ?? 0)))
        return 'Bu hizmet incelemede; askiya alma durduruldu.';
    return null;
});

// OLAY: askiya alindiysa dis sisteme bildir.
Hook::add('action:service.suspended', 10, function ($id, $service) {
    Crm::suspended((int) $id);
});

Tuzaklar

Otomatik işlemler de bu kancalardan geçer

Askıya alma, sonlandırma ve yenileme zamanlanmış görevlerden de çalışır. Bir kapıyı "operatör bunu yapmasın" diye yazarsanız aynı kural gece çalışan göreve de uygulanır ve sistem kendi işini yapamaz. Kapının kimi durdurduğunu düşünerek yazın.

Olay kancası sunucuda iş bittiğini garanti etmez

Durum değişikliği kancası bizim kaydımız değiştiğinde çalışır. Sağlayıcı modülünün sunucuda gerçekten hesabı kapatıp kapatmadığı ayrı bir sorudur; modül çağrısı başarısız olsa da kayıt değişmiş olabilir. Sunucu tarafını önemsiyorsanız modül sonucunu veren filtreye bakın.

Panel ve müşteri yolları ayrı kapılardır

Modül işlemleri iki ayrı kapıdan geçer: biri paneldeki operatör için, biri müşteri panelindeki müşteri için. Yalnız birine bağlanmak, kuralınızın öbür yoldan atlanabilmesi demektir. Müşteri yolu ayrıca daha dardır: yalnız modülün açıkça izin verdiği metotlar çağrılabilir.

Yenileme iki kez görünebilir

Yenileme hem faturanın ödenmesiyle hem de elle tetiklenebilir; ayrıca abonelik tahsilatı da aynı yolu kullanır. Yenilemeye bağlı bir iş yazarken aynı dönem için iki kez çalışmaya hazır olun ve kendi tarafınızda tekrarı ayıklayın.

  • Sipariş Akışı Kancaları
  • Fatura ve Ödeme Kancaları
  • Modül Yaşam Döngüsü Kancaları
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.