Laravel的绑定接口实现

来看下代码:protected function registerUserResolver() { $this->app->bind( AuthenticatableContract::class, function ($app) { return call_user_func($app['auth']-&

- 阅读全文 -

Laravel的artisan serve背后分析

今天来分析下 php artisan serve 背后的原理。首先,来到 config/app.php :Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,其中 ConsoleSupportSerivce 的名字可以看出,控制台服务支持,因此,可以推断 Laravel 的控制台服务应该都在这里注册,进入可以看到

- 阅读全文 -

Laravel 表单验证错误变量的 $errors 的由来

在 Laravel 的表单验证中,如果表单验证不通过,我们可以这样删除错误信息:if ($errors->any()) { foreach($errors->all() as $error) { echo $error; } }可以在视图直接使用变量 $errors ,那么这个变量是在哪里产生的呢?今天就来就小伙伴们分析下。老样子,先走一遍 Larave

- 阅读全文 -

Laravel源码分析之异常处理的背后逻辑

今天来分析下 Laravel 背后的异常处理代码。首先,定位到 /bootstrap/app.php 文件:$app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, App\Exceptions\Handler::class );该调用声明了凡是需要 Illuminate\Contracts\De

- 阅读全文 -

Laravel源码分析之down命令的背后原理

在 Laravel 应用中,如果我们想要暂时关闭站点,可以这样:php artisan down待到想要恢复站点的时候,执行下:php artisan up就可以了。今天,就来分析下这个上线/下线站点的背后原理。首先,我们知道,操作是通过命令行完成的,所以我们来找下 down 和 up 背后的源码:本次分析的Laravel版本为:5.5.39打开 /config/app.php 文件,找到:Ill

- 阅读全文 -

Laravel在dingo/api扩展包下的单元测试总是报错:The version given was unknown or has no registered routes

今天在公司项目写单元测试遇到一个问题,在一个测试文件中写了两个测试方法,都是请求相同的 api 地址,这里使用的是 dingo/api 扩展包,测试的话使用的是 dingo/api 提供的内部请求功能,当前的接口版本是 v2 所以在请求的时候需要指定版本,于是这样:$dispatcher->version('v2')->post('order');但是报错:Dingo\Api\Exce

- 阅读全文 -

laravel队列中的supervisor入坑指南之supervisor配置

这是 https://laravel.com/docs/5.5/queues#supervisor-configuration Laravel 官方文档给出的 supervisor 的配置,但是按照文档的说明要求去做,在运行:sudo supervisorctl reread的时候系统提示:ERROR: CANT_REREAD: Invalid user name forge in section

- 阅读全文 -