Lua Academy · पाठ

प्लगइन API और हुक सिस्टम

प्लगइन API टेबल परिभाषित करें और जीवनचक्र इवेंट के लिए हुक पंजीकृत करें।

पाठ 2, कुल 4 में से13 चरण

प्लगइन API और हुक सिस्टम, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

हुक प्रणाली क्या है

हुक प्रणाली प्लगइनों को एप्लिकेशन के विशिष्ट जीवनचक्र घटनाओं के लिए कॉलबैक पंजीकृत करने देती है। एप्लिकेशन उचित समय पर सभी पंजीकृत हुक कॉल करता है।

एप्लिकेशन ऑब्जेक्ट

आरंभ करते समय ऐप ऑब्जेक्ट प्लगइनों को दिया जाता है। यह हुक पंजीकरण एपीआई उपलब्ध कराता है।

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
end

प्लगइन द्वारा हुक पंजीकरण

किसी प्लगइन का init फ़ंक्शन ऐप प्राप्त करता है और हुक पंजीकृत करता है।

-- 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
}

हुक प्राथमिकताएँ

प्लगइनों को प्राथमिकता निर्दिष्ट करने दीजिए ताकि महत्वपूर्ण हुक (जैसे प्रमाणीकरण) वैकल्पिक हुक (जैसे लॉग दर्ज करना) से पहले चलें।

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
end

हुक से लौटने वाले मान

कुछ हुक ऐसे मान लौटाते हैं जो व्यवहार बदलते हैं। पहला गैर-शून्य मान मिलते ही ऐप आगे की प्रक्रिया रोक सकता है।

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
end

हुक पंजीकरण हटाना

फ़ंक्शन संदर्भ द्वारा किसी विशिष्ट हुक को हटाने के लिए :off(event, fn) विधि उपलब्ध कराइए।

हुक नामस्थान

व्यवस्था के लिए बिंदु से अलग किए गए घटना नामों का उपयोग कीजिए: "request.before", "request.after", "db.query"।

प्लगइन द्वारा दिए गए कमांड

हुक के अतिरिक्त, प्लगइन ऐसे नामित कमांड पंजीकृत कर सकते हैं जिन्हें ऐप या अन्य प्लगइन कॉल कर सकें।

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

मिडलवेयर पैटर्न

हुक श्रृंखलाएँ मिडलवेयर स्टैक बना सकती हैं, जिसमें प्रत्येक हुक अगले हुक को कॉल करता है। इससे अनुरोध/प्रतिक्रिया रूपांतरण पाइपलाइन सक्षम होती हैं।

प्लगइनों का अलग-अलग परीक्षण

जाँचों में एक नकली ऐप ऑब्जेक्ट बनाकर सत्यापित कीजिए कि प्लगइन हुक सही ढंग से पंजीकृत और कॉल किए जाते हैं।

दस्तावेज़ीकरण परंपरा

सभी उपलब्ध हुक नामों, उनके तर्कों और अपेक्षित लौटाए गए मानों का दस्तावेज़ीकरण कीजिए। इससे वह प्लगइन अनुबंध बनता है जिस पर तृतीय-पक्ष डेवलपर निर्भर करते हैं।

हुक प्रणाली संबंधी प्रश्न

हुक प्रणाली में प्राथमिकता का उद्देश्य क्या है?

पुनरावलोकन: प्लगइन एपीआई और हुक प्रणाली

ऐप ऑब्जेक्ट पर :on(event, fn) पंजीकरण एपीआई उपलब्ध कराइए। :emit() से घटनाएँ प्रसारित कीजिए। क्रमबद्ध निष्पादन के लिए प्राथमिकता जोड़िए। नामस्थान वाले घटना नामों का उपयोग कीजिए और प्लगइन डेवलपरों के लिए हुक अनुबंध का दस्तावेज़ीकरण कीजिए।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Lua सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
40
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “प्लगइन API और हुक सिस्टम” पाठ निःशुल्क है?

हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “प्लगइन API और हुक सिस्टम” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“प्लगइन API और हुक सिस्टम” में मैं क्या सीखूँगा?

प्लगइन API टेबल परिभाषित करें और जीवनचक्र इवेंट के लिए हुक पंजीकृत करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“प्लगइन API और हुक सिस्टम” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्लगइन खोजना और लोड करना
  2. प्लगइन API और हुक सिस्टम
  3. प्लगइन निष्पादन का सैंडबॉक्सिंग
  4. संस्करण और निर्भरता प्रबंधन
← Lua Academy पर वापस जाएँ