版權聲明:本文為博主原創文章,未經博主允許不得轉載。
前面講了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
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
