<?php 
 
require __DIR__.'/../vendor/autoload.php'; 
 
Dotenv::load(__DIR__.'/../'); 
 
/* 
|-------------------------------------------------------------------------- 
| Create The Application 
|-------------------------------------------------------------------------- 
| 
| Here we will load the environment and create the application instance 
| that serves as the central piece of this framework. We'll use this 
| application as an "IoC" container and router for this framework. 
| 
*/ 
 
$app = new Laravel\Lumen\Application( 
    realpath(__DIR__.'/../') 
); 
 
$app->configure('app'); 
$app->configure('secrets'); 
 
if (!class_exists('Config')) { 
    class_alias('Illuminate\Support\Facades\Config', 'Config'); 
} 
 
if (!class_exists('Response')) { 
    class_alias('Illuminate\Support\Facades\Response', 'Response'); 
} 
 
 
$app->withFacades(); 
 
 $app->withEloquent(); 
 
/* 
|-------------------------------------------------------------------------- 
| Register Container Bindings 
|-------------------------------------------------------------------------- 
| 
| Now we will register a few bindings in the service container. We will 
| register the exception handler and the console kernel. You may add 
| your own bindings here if you like or you can make another file. 
| 
*/ 
 
$app->singleton( 
    'Illuminate\Contracts\Debug\ExceptionHandler', 
    'App\Exceptions\Handler' 
); 
 
$app->singleton( 
    'Illuminate\Contracts\Console\Kernel', 
    'App\Console\Kernel' 
); 
 
/* 
|-------------------------------------------------------------------------- 
| Register Middleware 
|-------------------------------------------------------------------------- 
| 
| Next, we will register the middleware with the application. These can 
| be global middleware that run before and after each request into a 
| route or middleware that'll be assigned to some specific routes. 
| 
*/ 
 
$app->middleware([ 
    'LucaDegasperi\OAuth2Server\Middleware\OAuthExceptionHandlerMiddleware', 
    'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse' 
]); 
 
$app->routeMiddleware([ 
    'check-authorization-params' => 'Optimus\OAuth2Server\Middleware\CheckAuthCodeRequestMiddleware', 
    'csrf' => 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken', 
    'oauth' => 'Optimus\OAuth2Server\Middleware\OAuthMiddleware', 
    'oauth-owner' => 'Optimus\OAuth2Server\Middleware\OAuthOwnerMiddleware' 
]); 
 
/* 
|-------------------------------------------------------------------------- 
| Register Service Providers 
|-------------------------------------------------------------------------- 
| 
| Here we will register all of the application's service providers which 
| are used to bind services into the container. Service providers are 
| totally optional, so you are not required to uncomment this line. 
| 
*/ 
 
$app->register('LucaDegasperi\OAuth2Server\Storage\FluentStorageServiceProvider'); 
$app->register('Optimus\OAuth2Server\OAuth2ServerServiceProvider'); 
 
 
/* 
|-------------------------------------------------------------------------- 
| Load The Application Routes 
|-------------------------------------------------------------------------- 
| 
| Next we will include the routes file so that they can all be added to 
| the application. This will provide all of the URLs the application 
| can respond to, as well as the controllers that may handle them. 
| 
*/ 
 
require __DIR__.'/../app/Http/routes.php'; 
 
return $app; 
 
 |