版權聲明:本文為博主原創文章,未經博主允許不得轉載。
前面講了singleton和Middleware,現在來繼續講ServiceProviders和Routes,還是看起始文件bootstrap/app.php
/ * | -------------------------------------------------------------------------- |登記服務提供商 | -------------------------------------------------------------------------- | |這里我們將登記所有的應用服務提供商 |用於綁定到容器服務。服務提供商 |完全可選的,所以你不需要注釋掉這行。 | * / // $app->register(App\Providers\AuthServiceProvider::class); // $app->register(App\Providers\EventServiceProvider::class); $app->register(Dingo\Api\Provider\LumenServiceProvider::class); $app->register(Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); $app->register(App\Providers\User\UserServiceProvider::class);
前面的是Lumen自帶的,后面的UserServiceProvider是我自己加的,我們先來看看AuthServiceProvider
namespace App\Providers; use App\User; use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; class AuthServiceProvider extends ServiceProvider { public function register() { // } public function boot() { $this->app['auth']->viaRequest('api', function ($request) { if ($request->header('api_token')) { return User:: where('api_token', '=', $request->header('api_token'))->first(); } }); } }
這里主要有兩個比較核心的函數register(注冊)與boot(啟動),$app->register()會先注冊,后啟動,這里我有寫一篇:Lumen手記:lumen源碼解讀之初始化(5)——注冊(register)與啟動(boot)
自己定義ServiceProviders也是同樣道理:Lumen手記:如何向 IoC 容器中添加自己定義的類
再來講一下路由,路由可以說是最簡單的啦,
/ * | -------------------------------------------------------------------------- |負載的應用途徑 | -------------------------------------------------------------------------- | |接下來我們將包括路線的文件,都可以被添加到 |應用。這將提供應用程序的所有URL。 |可以響應,以及可能的處理控制器。 | * / $app->group(['namespace' => 'App\Http\Controllers'], function ($app) { require __DIR__ . '/../routes/web.php'; require __DIR__ . '/../routes/user.php'; });
新建幾個加載進來都可以讀到,不過要注意路徑和不要有重復的路由喔!
Lumen技術交流群:310493206
版權聲明:本文為博主原創文章,未經博主允許不得轉載。