Laravel

FilamentPHP von API-Requests ausschließen

Wir zeigen, wie Sie in Laravel-Projekten, die ausschließlich eine API anbieten, das Laden von FilamentPHP bei API-Requests verhindern.

Warum sollte man das machen? Zwei Gründe: Es erhöht die Stabilität und Verfügbarkeit Ihrer API und verbessert die Performance.

Chris
Geschäftsführer, PHP Senior-Entwickler
Aktualisiert:
Exclude FilamentPHP from API requests.

So verhindern Sie, dass FilamentPHP bei einem API-Request geladen wird

Im Filament AdminPanelProvider fügen Sie die folgende register() Methode ein, die dafür sorgt, dass bei einem API-Request das Panel nicht geladen wird:

class AdminPanelProvider extends PanelProvider
{
    public function register(): void
    {
        if (request()->is('api/*')) {
            return;
        }
    
        parent::register();
    }

    public function panel(Panel $panel): Panel
    {
        // dd('test');

        return $panel
            ->default()Language:php

Warum ist das sinnvoll?

Performance

Wenn FilamentPHP im Projekt installiert ist, kann man davon ausgehen, dass es zur Administration genutzt wird. Um die API-Requests zu bearbeiten, wird es nicht benötigt und muss daher nicht geladen werden. Das spart Ressourcen. Um dies zu verdeutlichen, habe ich 500 leere User-Ressourcen angelegt und die Response-Time gemessen:

  • Mit 500 Filament-Ressourcen: ~107ms/request

  • Komplett ohne Filament: ~19ms/request

Stabilität

Wir alle machen mal Fehler. Sollte sich ein Fehler ins System einschleichen, der im Adminpanel oder einer seiner Ressourcen liegt, können wir so ausschließen, dass die Verfügbarkeit der API eingeschränkt wird.