Rumah > rangka kerja php > Laravel > Penerangan terperinci tentang komponen baharu Laravel10: Laravel Pennant

Penerangan terperinci tentang komponen baharu Laravel10: Laravel Pennant

藏色散人
Lepaskan: 2023-04-17 14:20:32
ke hadapan
1194 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Laravel terutamanya memperkenalkan kepada anda komponen baharu Laravel 10: Laravel Pennant Ada contoh kod yang berminat boleh lihat di bawah .

Laravel Pennant ialah pakej yang dicipta oleh pasukan Laravel yang akan dihantar dengan Laravel 10 untuk menyediakan bendera ciri untuk aplikasi anda.

Bendera ciri membolehkan anda menghapuskan ciri apl baharu dengan yakin, A/B menguji reka bentuk antara muka baharu, melengkapkan strategi pembangunan berasaskan trunk dan banyak lagi.

Pakej ini adalah yang terbaharu dalam siri pakej yang disediakan secara rasmi, bermakna kami kini mempunyai pakej yang dibina dengan baik dan teruji yang menyediakan kami dengan beberapa ciri yang berkuasa.

Memecahkan fungsi pakej, kita boleh memahami apa yang pakej ini sediakan kepada kita.

Anda boleh menggunakan AppServiceProvider anda untuk mencipta ciri baharu. Seperti ini:

public function boot(): void
{
    Feature::define('beta-testers', fn (User $user) => match (true) {
        $user->isBetaTester() => true, default => false,    
    });
}
Salin selepas log masuk

Ini ialah cara yang sangat bersih dan mudah untuk menentukan fungsi dalam apl anda. Walau bagaimanapun, anda juga boleh menggunakan pendekatan berasaskan kelas untuk melaksanakan fungsi:

class BetaTesters
{
    public function resolve(User $user): mixed
    {
        return match (true) {
            $user->isBetaTester() => true,
            default => false,
        };
    }
}
Salin selepas log masuk

Melihat melalui dokumen, saya nampak terdapat banyak cara ia boleh digunakan. Mari kita lihat contoh daripada dokumentasi dan lihat apa yang boleh dilakukan dengannya.

class PodcastController
{
    public function index(Request $request): Response
    {
        return Feature::when(NewApi::class,
            fn () => $this->resolveNewApiResponse($request),
            fn () => $this->resolveLegacyApiResponse($request),
        );
    }
}
Salin selepas log masuk

Bergerak, ini adalah API versi - anda boleh mengawal ke mana permintaan pergi berdasarkan sama ada pengguna mempunyai akses. Mari kita kembangkan contoh ini.

class PodcastController
{
    public function __construct(
        private readonly RedirectAction $action,
    ) {}

    public function index(Request $request): Response
    {
        return Feature::when(BetaTester::class,
            fn () => $this->action->handle('v2'),
            fn () => $this->action->handle('v1'),
        );
    }
}
Salin selepas log masuk

Kami boleh menggunakan tindakan kami untuk mengubah hala ke laluan API yang betul berdasarkan sama ada pengguna adalah penguji beta atau tidak. Kita boleh mengalihkannya ke lapisan middleware yang lebih tinggi untuk menjadikannya lebih mudah.

class VersionMiddleware
{
    public function handle(Request $request, Closure $next): mixed
    {
        if (Feature::active('beta-tester')) {
            return new RedirectResponse(
                uri: 'generate the url here',
            );
        }

        return $next($request);
    }
}
Salin selepas log masuk

Seperti yang anda boleh bayangkan, perkara yang boleh anda lakukan dengan pakej ini hanya dihadkan oleh imaginasi anda. Saya tidak sabar untuk menggunakan pakej ini dan melihat peningkatan yang boleh ditambah pada aplikasi saya.

Alamat asal: https://www.php.cn/link/c988c2dac3954436ac56147118fb5c73

Alamat terjemahan: https://www.php .cn/link/21d58309d158bcb0e3e70a3827221e7c

Atas ialah kandungan terperinci Penerangan terperinci tentang komponen baharu Laravel10: Laravel Pennant. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:learnku.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan