Eklenti API'si ve Kanca Sistemi
Bir eklenti API tablosu tanımlayın ve yaşam döngüsü olayları için kancalar kaydedin.
Eklenti API'si ve Kanca Sistemi, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Kanca Sistemi Nedir?
Kanca sistemi, eklentilerin belirli uygulama yaşam döngüsü olayları için geri çağırma işlevleri kaydetmesine olanak tanır. Uygulama, uygun zamanda kaydedilmiş tüm kancaları çağırır.
Uygulama Nesnesi
Uygulama nesnesi, başlatma sırasında eklentilere aktarılır. Kanca kaydetme API'sini sunar.
local App = {}
App.__index = App
App._hooks = {}
function App:on(event, fn)
self._hooks[event] = self._hooks[event] or {}
table.insert(self._hooks[event], fn)
end
function App:emit(event, ...)
for _, fn in ipairs(self._hooks[event] or {}) do
fn(...)
end
endEklentinin Kanca Kaydetmesi
Eklentinin init işlevi uygulamayı alır ve kancaları kaydeder.
-- plugins/auth.lua
return {
name = "auth",
init = function(app)
app:on("request", function(req)
if not req.headers.token then
error("Unauthorized")
end
end)
end
}Kanca Öncelikleri
Eklentilerin bir öncelik belirtmesine izin veriniz; böylece kritik kancalar (ör. kimlik doğrulama), isteğe bağlı kancalardan (ör. günlükleme) önce çalışır.
function App:on(event, fn, priority)
priority = priority or 50
local hooks = self._hooks[event] or {}
hooks[#hooks+1] = {fn=fn, priority=priority}
table.sort(hooks, function(a,b) return a.priority < b.priority end)
self._hooks[event] = hooks
endKancalardan Döndürülen Değerler
Bazı kancalar davranışı değiştiren değerler döndürür. Uygulama, nil olmayan ilk dönüşte kısa devre yapabilir.
function App:filter(event, data)
for _, fn in ipairs(self._hooks[event] or {}) do
local result = fn(data)
if result ~= nil then return result end
end
return data
endKancaların Kaydını Kaldırma
Belirli bir kancayı işlev başvurusuyla kaldırmak için :off(event, fn) yöntemi sağlayınız.
Kanca Ad Alanları
Düzenleme amacıyla noktayla ayrılmış olay adları kullanınız: "request.before", "request.after", "db.query".
Eklentilerin Sağladığı Komutlar
Eklentiler kancaların yanı sıra uygulama veya diğer eklentiler tarafından çağrılabilen adlandırılmış komutlar da kaydedebilir.
function App:registerCommand(name, fn)
self._commands = self._commands or {}
self._commands[name] = fn
end
function App:run(name, ...)
local cmd = self._commands[name]
if cmd then return cmd(...) end
error("Unknown command: " .. name)
endAra Katman Düzeni
Kanca zincirleri, her kancanın sonrakini çağırdığı bir ara katman yığını oluşturabilir ve böylece istek/yanıt dönüştürme işlem hatlarını etkinleştirir.
Eklentileri Yalıtılmış Ortamda Sınama
Eklenti kancalarının doğru şekilde kaydedilip çağrıldığını doğrulamak için sınamalarda sahte bir uygulama nesnesi oluşturunuz.
Belgeleme Kuralı
Kullanılabilir tüm kanca adlarını, parametrelerini ve beklenen dönüş değerlerini belgeleyiniz. Bu, üçüncü taraf geliştiricilerin güvendiği eklenti sözleşmesini oluşturur.
Kanca Sistemi Sorusu
Kanca sisteminde önceliğin amacı nedir?
Özet: Eklenti API'si ve Kanca Sistemi
Uygulama nesnesinde bir :on(event, fn) kaydetme API'si sununuz. Olayları :emit() ile yayınlayınız. Sıralı yürütme için öncelik ekleyiniz. Ad alanı içeren olay adları kullanınız ve eklenti geliştiricileri için kanca sözleşmesini belgeleyiniz.
Sıkça Sorulan Sorular
“Eklenti API'si ve Kanca Sistemi” dersi ücretsiz mi?
Evet — “Eklenti API'si ve Kanca Sistemi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“Eklenti API'si ve Kanca Sistemi” dersinde ne öğreneceğim?
Bir eklenti API tablosu tanımlayın ve yaşam döngüsü olayları için kancalar kaydedin. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Eklenti API'si ve Kanca Sistemi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Eklenti Keşfi ve Yükleme
- Eklenti API'si ve Kanca Sistemi
- Eklenti Çalıştırmayı Korumalı Alana Alma
- Sürümleme ve Bağımlılık Yönetimi