Eklenti Keşfi ve Yükleme
Eklenti dosyaları için dizinleri tarayın ve bunları require veya loadfile ile yükleyin.
Eklenti Keşfi ve Yükleme, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 1. 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.
Eklenti Mimarisi Nedir?
Eklenti mimarisi, üçüncü taraf kodların uygulamanın çekirdeğini değiştirmeden uygulamayı genişletmesine olanak tanır. Lua'nın require işlevi ve dinamik yükleme bu yaklaşımı doğal hâle getirir.
Kurala Göre Eklenti Keşfi
Bir dizini, adlandırma kuralına uyan *.lua dosyaları için tarayınız ve her dosyayı bir eklenti olarak yükleyiniz.
local function discoverPlugins(dir)
local plugins = {}
-- platform-specific dir scan; here a mock example
for _, name in ipairs({"logger", "cache", "auth"}) do
local ok, mod = pcall(require, dir .. "." .. name)
if ok then plugins[name] = mod end
end
return plugins
endKeşif için package.path Kullanma
require işlevinin özel bir dizindeki eklentileri bulabilmesi için package.path değerini genişletiniz.
package.path = package.path .. ";./plugins/?.lua"
local plugin = require("myplugin")Dinamik Yükleme için loadfile
loadfile(path), bir Lua dosyasını çalıştırmadan bir parçaya derler. Eklentinin modül tablosunu elde etmek için parçayı () ile çalıştırınız.
local function loadPlugin(path)
local chunk, err = loadfile(path)
if not chunk then return nil, err end
local ok, result = pcall(chunk)
if not ok then return nil, result end
return result
endEklenti Bildirimi
Her eklenti, adını, sürümünü ve bağımlılıklarını açıklayan bir bildirim tablosu dışa aktarır.
-- plugins/logger.lua
return {
name = "logger",
version = "1.0",
deps = {},
init = function(app) app:on("log", print) end,
}Bağımlılık Çözümleme
Bir eklentiyi başlatmadan önce tüm bağımlılıklarının zaten yüklenmiş olduğunu denetleyiniz.
local function initPlugin(app, plugins, name)
local p = plugins[name]
if not p then error("Plugin not found: " .. name) end
for _, dep in ipairs(p.deps or {}) do
if not plugins[dep] then
error(("Plugin %s requires %s"):format(name, dep))
end
end
if p.init then p.init(app) end
endEklentileri Çalışırken Yeniden Yükleme
Bir eklentiyi yeniden yüklemek için: eklentiyi package.loaded içinden kaldırınız, require ile yeniden yükleyiniz ve kancaları yeniden kaydediniz.
package.loaded["plugins.logger"] = nil
plugins.logger = require("plugins.logger")
plugins.logger.init(app)Eklenti Kayıt Defteri
Çift yüklemeyi önlemek ve bağımlılık denetimini etkinleştirmek için yüklenmiş eklentilerin kayıt defterini tutunuz.
Hataları Yalıtma
Bozuk bir eklentinin tüm uygulamayı çökertmemesi için eklentileri pcall ile yükleyiniz.
local ok, err = pcall(function()
plugins[name] = loadPlugin(path)
initPlugin(app, plugins, name)
end)
if not ok then
print("Plugin load failed:", name, err)
endEklenti Üst Verileri
Açıklama, yazar ve yapılandırma şeması gibi ek üst verileri saklayınız. Bunları kullanıcı arayüzünde görüntülemek veya otomatik yapılandırma yapmak için kullanınız.
İhtiyaç Anında Yükleme
Eklentileri başlangıçta hemen yüklemek yerine yalnızca ilk ihtiyaç duyulduklarında yükleyiniz. Bunu, yüklemeyi tetikleyen bir __index metametoduna sahip vekil bir tablo aracılığıyla uygulayınız.
Eklenti Yükleme Sorusu
Eklentileri yüklerken pcall kullanmanın avantajı nedir?
Özet: Eklenti Keşfi ve Yükleme
Dizinleri tarayarak veya adlandırma kurallarını kullanarak eklentileri keşfediniz. loadfile veya require ile yükleyiniz. Bildirimleri doğrulayınız ve bağımlılıkları çözümleyiniz. Yükleme hatalarını yalıtmak için her zaman pcall kullanınız.
Sıkça Sorulan Sorular
“Eklenti Keşfi ve Yükleme” dersi ücretsiz mi?
Evet — “Eklenti Keşfi ve Yükleme” 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 Keşfi ve Yükleme” dersinde ne öğreneceğim?
Eklenti dosyaları için dizinleri tarayın ve bunları require veya loadfile ile yükleyin. 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 1. dersidir.
“Eklenti Keşfi ve Yükleme” 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