[ Laravel 从学徒到工匠系列 ] 服务容器篇:反射解决方案

Laravel 服务容器中最强大的功能之一就是通过反射来自动解析类的依赖。反射是一种在运行时检查类和方法的能力,比如,PHP 的 ReflectionClass 类可以动态检查给定类的所有方法,PHP 函数 method_exists 从某种意义上说也是一种反射(关于反射的更多细节可以查看 PHP 反射文档)。在开始进入正题之前,我们先来看看 PHP 中反射类的使用: $reflecti...

[ Laravel 5.5 文档 ] 底层原理 —— 服务容器

简介 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 setter 方法将类依赖注入到类中。 让我们看一个简单的例子: <?php namespace App\Http\Controllers; use App\User; use App\Repositories\Use...

[ Laravel 5.4 文档 ] 核心概念 —— 服务容器

1、简介 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 setter 方法将类依赖注入到类中。 让我们看一个简单的例子: <?php namespace App\Http\Controllers; use App\User; use App\Repositories\Use...

[ Laravel 5.3 文档 ] 核心概念 —— 服务容器

1、简介 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 set 方法将类依赖注入到类中。 让我们看一个简单的例子: <?php namespace App\Http\Controllers; use App\User; use App\Repositories\UserRe...

[ Laravel 5.2 文档 ] 架构 —— 服务容器

1、简介 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 set 方法将类依赖注入到类中。 让我们看一个简单的例子: <?php namespace App\Jobs; use App\User; use Illuminate\Contracts\Mail\Mailer; ...

Laravel 服务提供者实例教程 —— 创建 Service Provider 测试实例

从某种意义上说,服务提供者有点类似HTTP控制器,HTTP控制器用于为相关路由注册提供统一管理,而服务提供者用于为相关服务容器提供统一绑定场所,此外服务提供者还可以做一些初始化启动操作。Laravel的每个核心组件都对应一个服务提供者,可以这么说,服务提供者是Laravel的心脏,是Laravel的核心,核心组件类在这里完成注册、初始化以供后续调用。 既然这么重要,那么如何在自己的...

[ Lumen 5.1 文档 ] 更多特性 —— 服务容器

1、绑定 几乎所有的服务容器绑定都是在服务提供者中完成。因此本章节的演示例子用到的容器都是在这种上下文环境中,如果一个类没有基于任何接口那么就没有必要将其绑定到容器。容器并不需要被告知如何构建对象,因为它会使用PHP的反射服务自动解析出具体的对象。 在一个服务提供者中,可以通过$this->app变量访问容器,然后使用bind方法注册一个绑定,该方法需要两个参数,第一个参数...

[ Laravel 5.1 文档 ] 架构 —— 服务容器

1、简介 Laravel服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过set方法将类依赖注入到类中。 让我们看一个简单的例子: <?php namespace App\Jobs; use App\User; use Illuminate\Contracts\Mail\Mailer; use...