Modül Kurulum Kancaları
Modül kurma, etkinleştirme, silme ve kuyruk müdahalesinin dokuz kancası.
Genel Bakış
Bir modülün yolu dört adımdır: yüklenir, etkinleştirilir, kapatılır, silinir. Her adımın önünde durdurabileceğiniz bir kapı, arkasında haber veren bir olay bulunur.
İki şekil farkı vardır. Etkinleştirme kancaları liste alır, çünkü panelde çoklu seçim yapılabilir; silme kancaları tek modülle çalışır.
Referans
Modül etkinleştirmeyi durdurma
Bir ya da birkaç modül etkinleştirilmeden önce çalışır. Panelde çoklu seçim yapılabildiği için elinize liste gelir.
Hook::add('gate:module.activate', 10, function ($group, $modules) {
// Tek modul secilse bile dizidir.
foreach ($modules as $key)
if (!Acme::licensed($group, $key)) return 'Bu modul icin lisansiniz yok: ' . $key;
return null;
});Modül etkinleşmesini izleme
Modüller etkinleştirildikten sonra çalışır.
Hook::add('action:module.activated', 10, function ($group, $modules) {
foreach ($modules as $key) Acme::onModuleOn($group, $key);
});Modül devre dışı kalmasını izleme
Modüller devre dışı bırakıldıktan sonra çalışır. Kapatılan bir ödeme ya da sunucu modülü arkasında çalışan hizmetler bırakabilir.
Hook::add('action:module.deactivated', 10, function ($group, $modules) {
// Kapali modulun arkasinda calisan hizmet kalmis olabilir.
foreach ($modules as $key) Acme::warnOrphans($group, $key);
});Modül silmeyi durdurma
Bir modül dosyalarıyla birlikte silinmeden önce çalışır. Etkinleştirmenin aksine burada tek modül vardır.
Hook::add('gate:module.delete', 10, function ($type, $key) {
// Uzerinde hizmet duran modul silinmesin.
if (Acme::hasLiveServices($type, $key)) return 'Bu modulde calisan hizmetler var.';
return null;
});Modül silinmesini izleme
Bir modül silindikten sonra çalışır. Dosyaları artık diskte değildir.
Hook::add('action:module.deleted', 10, function ($type, $key) {
Acme::forgetModule($type, $key);
});Eklenti yüklemesini durdurma
Yüklenen eklenti paketi açılmadan önce çalışır. Elinizdeki, henüz geçici dizinde duran ham dosyadır.
Hook::add('gate:module.addon_install', 10, function ($file, $activated) {
// Dosya adi kullanicidan gelir: icerige bakin, ada degil.
if (!Acme::signatureValid($file['tmp_name'] ?? '')) return 'Paket imzasi dogrulanamadi.';
return null;
});Eklenti silmeyi durdurma
Bir eklenti kaldırılmadan önce çalışır.
Hook::add('gate:module.addon_delete', 10, function ($key) {
if (Acme::isRequired($key)) return 'Bu eklenti kurulumun calismasi icin gerekli.';
return null;
});Eklenti listesini değiştirme
Eklenti sayfasının listesi hazırlandıktan sonra çalışır.
Hook::add('filter:module.addons_list', 10, function (&$moduleList) {
// Uc grubun yapisini bozmayin.
$moduleList['premium'] = Acme::filterOffers($moduleList['premium'] ?? []);
});Kuyruk müdahalesini durdurma
Yönetici modül kuyruğuna elle müdahale etmeden önce çalışır: yeniden deneme, silme, temizleme ve hemen çalıştırma.
Hook::add('gate:module.queue_intervene', 10, function ($action, $id) {
// Toplu islemde id SIFIR gelir: tek kayit varsayimi kurmayin.
if ($id === 0 && $action === 'delete') return 'Toplu silme kapali.';
return null;
});Tuzaklar
Tek bir modül seçilse bile parametre dizidir. Doğrudan karşılaştıran bir denetim hiçbir şey yakalamaz; listeyi gezin.
Birden çok kayda birden müdahale edildiğinde kayıt kimliği sıfır gelir. Tek kayda bakmak üzere yazılmış bir kural o durumda sessizce hiçbir şeyi denetlemez.
İlgili Makaleler
- Modül Kancaları
- Sistem Olayı Kancaları
- Kancalar Nasıl Çalışır
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.