Fasadlar
Kirish
facades ilova yadrosining asosiy funksiyalari uchun "static" interfeysni ta'minlaydi va ko'proq moslashuvchan, chiroyli va sinov o'tkazish oson bo'lgan sintaksisni taqdim etadi. Goravel’ning barcha facadelari app/facades papkasi ichida joylashgan:
import "app/facades"
facades.Config().GetString("app.host")Fasadlar qanday ishlaydi
Har bir xizmat ko'rsatuvchi o'zining mos bog'lanishlarini xizmat konteynerida ro'yxatdan o'tkazadi, so'ngra xizmat konteyneri bog'lanish namunalarini yaratish uchun turli Make* funksiyalarini taqdim etadi. app/facades papkasidagi facadeslar xizmat konteyneridan namunalarni olish uchun ushbu Make* funksiyalarini chaqiradi. Keling, Route fasadini misol sifatida ishlatamiz:
Routexizmat provayderi xizmat konteyneridabinding.Routebog'lanishini ro'yxatdan o'tkazadi:
type ServiceProvider struct {}
func (r *ServiceProvider) Register(app foundation.Application) {
app.Singleton(binding.Route, func(app foundation.Application) (any, error) {
return NewRoute(app.MakeConfig())
})
}
func (r *ServiceProvider) Boot(app foundation.Application) {}RoutefasadıMakeRoute()funksiyasini chaqirib, xizmat konteyneridanRoutevorislarini olish uchun:
// app/facades/route.go
package facades
import (
"github.com/goravel/framework/contracts/route"
)
func Route() route.Route {
return App().MakeRoute()
}
facadesilovaga ochiq bo'lganligi sababli, siz o'zingizningfacadeslaringizni yaratishingiz yoki mavjudfacadeslarniapp/facadespapkasida almashtirishingiz mumkin.
Fasadlarni o'rnatish/o'chirish
goravel/goravel standart boʻyicha barcha facadelarni oʻrnatadi va goravel/goravel-lite faqat Artisan, Config kabi muhim facadelarni oʻrnatadi. Siz "package:install" va "package:uninstall" buyruqlari orqali boshqa facadeslarni kerak bo‘lganda o‘rnatishingiz yoki o‘chirishingiz mumkin.
# Muayyan fasadni o'rnatish
./artisan package:install Route
# Barcha fasadlarni o'rnatish
./artisan package:install --all
# Standart drayverlar bilan barcha fasadlarni o'rnatish
./artisan package:install --all --default
# Muayyan fasadni o'chirish
./artisan package:uninstall RouteEslatma: agar siz
./artisan package:installbuyrug'i orqalifacadesni qo'lda tanlashni istasangiz, o'rnatmoqchi bo'lgan fasadlarni tanlash uchunxtugmasini bosing, so'ngra tasdiqlash uchunEntertugmasini bosing.facadesto'g'ridan-to'g'riEntertugmasini bosganingizda tanlanmaydi.
