ফাইবার হুকস

ফাইবার ফ্রেমওয়ার্ক দ্বারা প্রদত্ত হুকস দ্বারা, আমরা ফ্রেমওয়ার্কের আচরণকে অব্যবহারিত করে পূর্ব গোপনীয় বিন্যাসে অভিনীত লজিক কাস্টমাইজ করতে পারি।

ফাইবার v2.30.0 থেকে, আপনি নির্দিষ্ট পয়েন্টগুলিতে কাস্টম ব্যবহারকারী ফাংশন বাড়ানোর সময় ব্যাপকভাবে কার্যকর করতে পারবেন। এখানে এই হুকস সমূহের একটি তালিকা দেওয়া হল :

  • অন রাউট (রাউট হুক)
  • অন নেম (নাম হুক)
  • অন গ্রুপ (গ্রুপ হুক)
  • অন গ্রুপনেম (গ্রুপ নাম হুক)
  • অন লিসেন (শোনা হুক)
  • অন ফোর্ক (ফোর্ক হুক)
  • অন শাটডাউন (শাটডাউন হুক)
  • অন মাউন্ট (মাউন্ট হুক)

ধারা

// হ্যান্ডলারগুলি ফাইবারের জন্য হুক তৈরি করার জন্য একটি ফাংশন সংজ্ঞায়িত করুন।
আধিকারিক দ্বারা গ্রহণযোগ্য ফোর্মেট বজায় রাখা সম্পর্কে আরও জানুন

স্বাক্ষর

func (app *App) OnRoute(handler ...OnRouteHandler)

অন নেম (নাম হুক)

অন নেম হল হুক, যা প্রতি সময় একটি রুট নিবন্ধন করার সময় ব্যবহারকারী ফাংশন ব্যবহার করে। আপনি এই টাগে route প্রমাণীতা মাধ্যমে রুট বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারেন।

স্বাক্ষর

func (app *App) OnName(handler ...OnNameHandler)
  • অন নেম উদাহরণ
প্যাকেজ main

import (
    "fmt"
    "github.com/gofiber/fiber/v2"
)

ফাংশন মূল() {
    app := fiber.New()

    app.Get("/", func(c *fiber.Ctx) error {
        return c.SendString(c.Route().Name)
    }).Name("ইনডেক্স")

    app.Hooks().OnName(ফাংশন(r fiber.Route) ত্রুটি {
        fmt.Print("নাম: " + r.Name + ", ")
        return nil
    })

    app.Hooks().OnName(ফাংশন(r fiber.Route) ত্রুটি {
        fmt.Print("মেথড: " + r.Method + "\n")
        return nil
    })

    app.Get("/add/user", func(c *fiber.Ctx) error {
        return c.SendString(c.Route().Name)
    }).Name("ব্যবহারকারীযুক্ত")

    app.Delete("/destroy/user", func(c *fiber.Ctx) error {
        return c.SendString(c.Route().Name)
    }).Name("ব্যবহারকারীআপগ্রেড")

    app.Listen(":5000")
}

// ফলাফল:
// নাম: ব্যবহারকারীযুক্ত, মেথড: বিবেচনা
// নাম: ব্যবহারকারীআপগ্রেড, মেথড: মুছে ফেলা

অন গ্রুপ (গ্রুপ হুক)

অন গ্রুপ হল একটি হুক, যা প্রতি সময় একটি গ্রুপ নিবন্ধন করার সময় ব্যবহারকারী ফাংশন ব্যবহার করে। আপনি এই টাগে group প্রমাণীতা মাধ্যমে গ্রুপ বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারেন।

স্বাক্ষর

func (app *App) OnGroup(handler ...OnGroupHandler)

অন গ্রুপনেম (গ্রুপ নাম হুক)

অন গ্রুপনেম হল হুক, যা প্রতি সময় একটি গ্রুপ নিবন্ধন করার সময় ব্যবহারকারী ফাংশন ব্যবহার করে। আপনি এই টাগে group প্রমাণীতা মাধ্যমে গ্রুপ বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারেন।

দ্রষ্টব্য: গ্রুপের নাম নেই রাউটের নিয়মের মধ্যে বর্ণিত হয়, গ্রুপের নামের মধ্যে নয়।

স্বাক্ষর

func (app *App) OnGroupName(handler ...OnGroupNameHandler)

অন লিসেন (শোনা হুক)

অন লিসেন হুক ব্যবহার করা হয় যাতে উদ্যোগ শোনা, ListenTLS, অথবা লিসেনার অপারেশন প্রভৃতি প্রয়োজনে ব্যবহারকারী নির্ধারিত ফাংশনগুলি অধিকার সম্পাদন করা হয়।

স্বাক্ষর

func (app *App) OnListen(handler ...OnListenHandler)
  • অন লিসেন উদাহরণ
app := fiber.New(fiber.Config{
  DisableStartupMessage: true,
})

app.Hooks().OnListen(ফাংশন(listenData fiber.ListenData) ত্রুটি {
  if fiber.IsChild() {
      return nil
  }
  scheme := "http"
  if listenData.TLS {
    scheme = "https"
  }
  log.Println(scheme + "://" + listenData.Host + ":" + listenData.Port)
  return nil
})

app.Listen(":5000")

অন ফোর্ক (ফোর্ক হুক)

অন ফোর্ক হুক ব্যবহার করা হয় যাতে ফোর্ক অপারেশন সম্পাদন করা হলে ব্যবহারকারী নির্ধারিত ফাংশনগুলি পরিচালিত হয়।

স্বাক্ষর

func (app *App) OnFork(handler ...OnForkHandler)

অন শাটডাউন (শাটডাউন হুক)

অন শাটডাউন হুক ব্যবহার করা হয় যাতে শাটডাউন অপারেশন প্রায়মর্যাদোপূর্ণ হওয়ার পরে ব্যবহারকারী নির্ধারিত ফাংশনগুলি প্রয়োজনে পরিচালনা করা যায়।

স্বাক্ষর

func (app *App) OnShutdown(handler ...OnShutdownHandler)

OnMount

OnMount হল একটি হুক যা মাউন্টিং প্রসেস শেষে ব্যবহারকারী-নির্ধারিত ফাংশন অভিন্ন। একটি সাব-অ্যাপ্লিকেশন একটি মূল অ্যাপ্লিকেশনে মাউন্ট করা হলে, মাউন্টিং ইভেন্ট ট্রিগার হয়, যার প্যারামিটার হিসেবে প্যারেন্ট অ্যাপ্লিকেশন পাস করা হয়। এটি মাউন্টিং অ্যাপ্লিকেশন এবং গ্রুপগুলিতে প্রযোজ্য।

সিগনেচার

func (h *Hooks) OnMount(handler ...OnMountHandler) 
  • OnMount এর উদাহরণ
package main

import (
    "fmt"
    "github.com/gofiber/fiber/v2"
)

func main() {
    app := New()
    app.Get("/", testSimpleHandler).Name("x")

    subApp := New()
    subApp.Get("/test", testSimpleHandler)
    
    subApp.Hooks().OnMount(func(parent *fiber.App) error {
        fmt.Print("Parent application's mount path: "+parent.MountPath())
        // ...

        return nil
    })

    app.Mount("/sub", subApp)
}

// ফলাফল:
// প্যারেন্ট অ্যাপ্লিকেশনের মাউন্ট পাথ: 

লক্ষ্যণীয়: OnName/OnRoute/OnGroup/OnGroupName হুকগুলি মাউন্টিং-এ সতর্ক। যদি আপনি এই রুটগুলি এবং গ্রুপগুলির পথ সাব-অ্যাপ্লিকেশনে ব্যবহার করেন এবং তা মাউন্ট করেন, তবে রুটগুলি এবং গ্রুপগুলির পথগুলি মাউন্ট প্রিফিক্স দিয়ে শুরু হবে।