关于Lumen的资料确实太少,而且都比较旧,从官网也得不到许多有用的信息,所以在此进行记录。
顺便吐槽一下,Lumen阉割的东西占比最大就是那个文件系统库,其他好用的不占地方的组件都阉割掉了(尤其是cli的一些命令),简直就是残废,但是还是比很多框架好用,唉!
安装Lumen
这个很简单,直接
composer create-project --prefer-dist laravel/lumen blog
即可。
配置Bootstrap
Lumen基于Laravel精简了一些组件,这导致少了一些Laravel的便利性,例如ServiceProvider和config等自动扫描功能,需要我们到bootstrap/app.php手动配置。
“Register Config Files”这部分,需要将想要引入的config配置写出来,否则config函数无法读取。
若需要配置API认证(登录认证),将以下代码的注释去掉:
//这个在Register Middleware
$app->routeMiddleware([
'auth' => App\Http\Middleware\Authenticate::class,
]);
//这个在Register Service Providers
$app->register(App\Providers\AuthServiceProvider::class);
若想要引入ide-helper,首先需要安装league/flysystem。注意,Laravel/Lumen仅支持其1.x版本,因此安装时指定版本:
composer require "league/flysystem":"^1.1"
然后引入ide-helper:
composer require barryvdh/laravel-ide-helper --dev
回到bootstrap/app.php,将以下代码的注释去掉:
$app->register(App\Providers\AppServiceProvider::class);
并在它的上一行加上:
$app->register(Illuminate\Filesystem\FilesystemServiceProvider::class);
然后进入AppServiceProvider.php,在register方法中添加代码:
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
即可按Laravel的方法来使用ide-helper了。
其他设置可以不用动,要是想自定义也可以研究一下。
定义认证方式
默认的认证方式在AuthServiceProvider的boot方法中。
具体要怎么实现,自己决定,默认是判断User表的api_token字段(代码有写)。
实现登录
一般Laravel项目都是自带一个很方便的LoginController之类的东西,但是Lumen不仅没有,Authentication的东西也阉割了不少。
例如:Auth门面没有attempt方法;没有ThrottlesLogins也就是登录次数限制。很多东西是要自己实现的。不过做一个简单的API,这些东西都不用考虑太多,可以直接莽~
往好的想,至少它还给你留了一些基础功能。
待续……