Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 1660 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

    namespace App\Providers;

    use Illuminate\Cache\RateLimiting\Limit;
    use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\RateLimiter;
    use Illuminate\Support\Facades\Route;

    class RouteServiceProvider extends ServiceProvider
    {
        /**
         * The path to the "home" route for your application.
         *
         * Typically, users are redirected here after authentication.
         *
         * @var string
         */
        public const HOME = '/home';

        /**
         * Define your route model bindings, pattern filters, and other route configuration.
         *
         * @return void
         */
        public function boot(): void
        {
            $this->configureRateLimiting();

            $this->routes( function ()
            {
                Route::middleware( 'api' )
                    ->prefix( 'api' )
                    ->group( base_path( 'routes/api.php' ) );

                if ( php_sapi_name() != "cli" )
                {
                    Route::middleware( 'web' )
                        ->group( base_path( 'routes/web.php' ) )
                        ->prefix( 'backend' )->group( base_path( 'routes/admin.php' ) );
                }
            } );
        }

        /**
         * Configure the rate limiters for the application.
         *
         * @return void
         */
        protected function configureRateLimiting(): void
        {
            RateLimiter::for( 'api', function ( Request $request )
            {
                return Limit::perMinute( 60 )->by( $request->user()?->id ? : $request->ip() );
            } );
        }
    }