123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <?php
- /*
- * This file is part of the Jiannei/lumen-api-starter.
- *
- * (c) Jiannei <longjian.huang@foxmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- require_once __DIR__ . '/../vendor/autoload.php';
- (new Laravel\Lumen\Bootstrap\LoadEnvironmentVariables(
- dirname(__DIR__)
- ))->bootstrap();
- date_default_timezone_set(env('APP_TIMEZONE', 'PRC'));
- /*
- |--------------------------------------------------------------------------
- | 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(
- dirname(__DIR__)
- );
- $app->withFacades();
- //$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('app');
- $app->configure('auth');
- $app->configure('broadcasting');
- $app->configure('cache');
- $app->configure('database');
- $app->configure('filesystems');
- $app->configure('logging');
- $app->configure('queue');
- $app->configure('services');
- $app->configure('view');
- $app->configure('repository');
- $app->configure('enum');
- $app->configure('permission');
- $app->configure('response');
- $app->configure('site');
- $app->configure('wechat');
- $app->configure('sms');
- $app->configure('mail');
- $app->configure('excel');
- $app->alias('cache', \Illuminate\Cache\CacheManager::class);
- /*
- |--------------------------------------------------------------------------
- | 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\ExampleMiddleware::class
- // ]);
- $app->middleware([
- // \Jiannei\Logger\Laravel\Http\Middleware\RequestLog::class,
- // \ZhMead\Logger\Laravel\Http\Middleware\RequestLog::class,
- \Jiannei\Response\Laravel\Http\Middleware\Etag::class,
- ]);
- $app->routeMiddleware([
- 'auth' => App\Http\Middleware\Authenticate::class,
- 'auth.api' => App\Http\Middleware\ApiAuthenticate::class,
- 'enum' => \Jiannei\Enum\Laravel\Http\Middleware\TransformEnums::class,
- 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
- 'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
- 'throttle' => \Jiannei\Response\Laravel\Http\Middleware\ThrottleRequests::class,
- 'auth.role' => \App\Http\Middleware\JWTRoleAuth::class,
- 'checkUserPermission' => \App\Http\Middleware\CheckUserPermissionMiddleware::class,
- 'single' => \App\Http\Middleware\SingleLoginLimit::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.
- |
- */
- /*
- * Application Service Providers...
- */
- $app->register(App\Providers\AppServiceProvider::class);
- $app->register(App\Providers\AuthServiceProvider::class);
- $app->register(App\Providers\EventServiceProvider::class);
- /*
- * Package Service Providers...
- */
- $app->register(\Tymon\JWTAuth\Providers\LumenServiceProvider::class);
- $app->register(\Illuminate\Redis\RedisServiceProvider::class);
- $app->register(\Spatie\Permission\PermissionServiceProvider::class);
- $app->register(\Jiannei\Enum\Laravel\Providers\LumenServiceProvider::class);
- $app->register(\Jiannei\Response\Laravel\Providers\LumenServiceProvider::class);
- $app->register(\ZhMead\Logger\Laravel\LoggerServiceProvider::class);
- $app->register(ZhMead\LumenApiStarterGenerator\LumenGeneratorServiceProvider::class);
- $app->register(Overtrue\LaravelLang\TranslationServiceProvider::class);
- /*
- * Custom Service Providers.
- */
- $app->register(App\Providers\RepositoryServiceProvider::class);
- $app->register(\Maatwebsite\Excel\ExcelServiceProvider::class);
- $app->register(SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class);
- $app->register(Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider::class,);
- /*
- |--------------------------------------------------------------------------
- | 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.
- |
- */
- $app->router->group([
- 'namespace' => 'App\Http\Controllers',
- ], function ($router) {
- require __DIR__ . '/../routes/web.php';
- });
- $app->router->group([
- 'namespace' => 'App\Http\Controllers\Admin',
- 'prefix' => 'admin'
- ], function ($router) {
- require __DIR__ . '/../routes/admin.php';
- });
- $app->router->group([
- 'namespace' => 'App\Http\Controllers\Api',
- 'prefix' => 'api'
- ], function ($router) {
- require __DIR__ . '/../routes/api.php';
- });
- return $app;
|