Platform Altyapı Kancaları
İsteğin altındaki sekiz kanca: giden çağrılar, kabul edilen adresler, yönlendirme, şablon değişkenleri, API adresleri ve ürün tipleri.
Genel Bakış
Bu kancalar bir isteğin altında durur: adres çözülmeden, şablon görünmeden, dışarıya çağrı gitmeden önce. Hepsi sıcak yollardır, yani her istekte çalışırlar.
İkisi özellikle dikkat ister. Ön eşleşme kurulumun gerçek sayfalarının önündedir: kanıtsız sahiplenmek onları gölgeler. Şablon değişkenleri ise bağla geçmez; döndürdüğünüz dizi hepsinin yerine geçer.
Referans
Giden isteği değiştirme
Sistem dışarıya bir istek göndermeden önce çalışır. Her giden çağrı buradan geçer: sunucu modülleri, kayıt kuruluşları, ödeme kuruluşları.
Hook::add('filter:http.request', 10, function (&$options) {
// Yalniz kendi adresinize dokunun: bu kanca BUTUN giden cagrilari gorur.
if (!str_contains($options['url'] ?? '', 'api.acme.test')) return;
$options['headers'][] = 'X-Acme-Tenant: ' . Acme::tenant();
});Geçerli adresleri genişletme
Gelen isteğin adresi doğrulanırken çalışır. Liste lisansın kilitli olduğu adresle dolu gelir; kendi adresinizi eklersiniz.
Hook::add('filter:http.trusted_hosts', 10, function (&$hosts, &$context) {
// Ekleyin, sifirlamayin: kilitli adres listede kalmali.
$hosts[] = 'panel.acme.test';
});Kendi adresinizi kaydetme
Adres tablosu kurulurken çalışır. Kendi sayfanızı açmanın doğru yolu budur: eşleşme kancalarıyla adres kapmak yerine adresi kaydedersiniz.
Hook::add('register:routes', 10, function ($router) {
// Kayit donusle degil, cagriyla yapilir.
$router->add('acme-status', 'acme/status', 'AcmeStatusController');
});Adresi desenlerden önce sahiplenme
Bir adres çözülmeye başlarken, kayıtlı desenlerden önce çalışır. Buradan dönmek, kurulumun gerçek sayfalarının önüne geçmek demektir.
null dönün. Kalıcı bir sayfa açmak istiyorsanız doğru yer bu değil, adres kaydıdır.Hook::add('filter:routing.prematch', 10, function ($url, $routes) {
// KANITLI sahiplenin: kendi kaydiniz yoksa null donun.
if (!Acme::ownsSlug($url)) return null;
return ['key' => 'acme-page', 'controller' => 'AcmePageController', 'params' => [$url]];
});Eşleşmeyen adresi karşılama
Kayıtlı desenlerin hiçbiri tutmadığında çalışır. Ön eşleşmenin aksine burada sahiplenmek güvenlidir: gerçek bir sayfayı gölgeleme riski yoktur.
Hook::add('filter:routing.match', 10, function ($url, $routes) {
// Buraya dusen adresi hicbir desen tutmadi: sahiplenmek guvenli.
$page = Acme::findVanity($url);
if (!$page) return null;
return ['key' => 'acme-vanity', 'controller' => 'AcmeVanityController', 'params' => [$page]];
});Şablona geçen değişkenleri değiştirme
Bir şablon görünmeden önce çalışır. Bütün sayfalara ortak bir değer taşımanın yolu budur.
Hook::add('filter:template.variables', 10, function ($template_path, $data) {
// Gelen diziye EKLEYIN ve tamamini dondurun: merge YOK, replace var.
$data['acme_banner'] = Acme::banner();
return $data;
});Kendi API adreslerinizi açma
API adres tablosu kurulurken çalışır. Modülünüzün uçlarını çekirdeğe dokunmadan açmanın yolu budur.
admin, client ya da module. Kanca üçü için ayrı ayrı çalışır: hangi dalda olduğunuza bakmadan ekleme yaparsanız ucunuz üç tabloya da girer.Hook::add('filter:api.routes', 10, function (&$routes, &$audience) {
// Kanca uc tablo icin ayri calisir: dali kontrol edin.
if ($audience !== 'admin') return;
$routes[] = ['GET', 'acme/status', 'Module:Addons/Acme', 'status'];
});Yeni ürün tipi tanıtma
Ürün tipi listesi kurulurken çalışır. Kendi tipinizi çekirdeğin listesine buradan katarsınız.
Hook::add('register:product_types', 10, function () {
return ['acme-vps' => [
'title' => 'Acme VPS',
'description' => 'Acme uzerinde sanal sunucu',
'icon' => 'bi bi-hdd-rack fs-5',
]];
});Tuzaklar
Bu filtre bağla geçmez. Döndürdüğünüz dizi bütün değişkenlerin yerine geçer. Gelen diziyi temel almadan kendi dizinizi döndürürseniz sayfanın verisi kaybolur ve ekran boş çıkar. Doğrusu: gelene ekleyip tamamını döndürmek.
Ön eşleşme kayıtlı desenlerin önündedir. “Bu adres benim olabilir” diye dönmek kurulumun gerçek sayfalarını erişilemez yapar. Yalnız arkasında kendi kaydınız olan adreste eşleşin; kalıcı bir sayfa için doğru yer adres kaydıdır.
İ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.