0Pricing
Lua Academy · Ders

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
end

Keş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
end

Eklenti 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
end

Eklentileri Ç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)
end

Eklenti Ü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

  1. Eklenti Keşfi ve Yükleme
  2. Eklenti API'si ve Kanca Sistemi
  3. Eklenti Çalıştırmayı Korumalı Alana Alma
  4. Sürümleme ve Bağımlılık Yönetimi
← Lua Academy Sayfasına Dön