bootstrap(); $site = require_once __DIR__.'/../config/site.php'; date_default_timezone_set(env('APP_TIMEZONE', 'UTC')); /* |-------------------------------------------------------------------------- | 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. | */ $envFile = '.env'; $host = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'] ?? ''); if (!empty($site[$host])) { $envFile = $site[$host]; } $subject = !empty($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ($_SERVER['REDIRECT_URL'] ?? ''); if (!empty($subject)) { $pattern = '/\/(.*?)\//i'; if (preg_match($pattern, $subject, $matches) && !empty($matches[1])) { if (!empty($site[$matches[1]])) { $envFile = $site[$matches[1]]; } } } (new Laravel\Lumen\Bootstrap\LoadEnvironmentVariables( dirname(__DIR__), $envFile ))->bootstrap(); $app = new Laravel\Lumen\Application( dirname(__DIR__) ); $app->withFacades(); //注册mongodb 必须在withEloquent之前 // $app->register(\Jenssegers\Mongodb\MongodbServiceProvider::class); $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::class, App\Exceptions\Handler::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class ); /* |-------------------------------------------------------------------------- | Register Config Files |-------------------------------------------------------------------------- | | Now we will register the "app" configuration file. If the file exists in | your configuration directory it will be loaded; otherwise, we'll load | the default version. You may register other files below as needed. | */ $app->configure('cache'); $app->configure('app'); $app->configure('auth'); $app->configure('error'); $app->configure('sms'); $app->configure('oss'); $app->configure('api'); $app->configure('mail'); $app->configure('services'); $app->configure('wechat'); /* |-------------------------------------------------------------------------- | 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([ //全局添加返回值格式 \App\Http\Middleware\Response::class // App\Http\Middleware\ExampleMiddleware::class ]); $app->routeMiddleware([ 'admin.auth' => \App\Http\Middleware\AdminUserAuthenticate::class, 'normal.auth' => \App\Http\Middleware\NormalUserAuthenticate::class, ]); /* |-------------------------------------------------------------------------- | 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(App\Providers\AppServiceProvider::class); $app->register(Maatwebsite\Excel\ExcelServiceProvider::class); $app->alias('Excel', Maatwebsite\Excel\Facades\Excel::class); $app->register(App\Providers\AuthServiceProvider::class); $app->register(App\Providers\EventServiceProvider::class); $app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class); $app->register(Illuminate\Mail\MailServiceProvider::class); $app->alias('mailer', Illuminate\Mail\Mailer::class); $app->alias('mailer', Illuminate\Contracts\Mail\Mailer::class); $app->alias('mailer', Illuminate\Contracts\Mail\MailQueue::class); $app->alias('Tymon\JWTAuth\Facades\JWTAuth', 'JWTAuth'); $app->alias('Tymon\JWTAuth\Facades\JWTFactory', 'JWTFactory'); /* |-------------------------------------------------------------------------- | 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. | */ return $app;