[ Laravel 从学徒到工匠系列 ] 框架扩展篇

简介 为了方便你自定义框架的核心组件功能,甚至是完全替换它们,Laravel 提供了大量可以对应用进行扩展的地方。例如,哈希服务实现了 Illuminate\Contracts\Hashing\Hasher 契约,你可以按照自己应用的需求来重新实现它。你还可以继承 Request 对象类,添加自己用的顺手的方法。你甚至可以添加全新的用户认证、缓存和会话驱动! Laravel 组件功能通常...

[ Laravel 从学徒到工匠系列 ] 服务提供者篇

作为引导者 Laravel 服务提供者主要用来进行注册服务容器绑定(即注册接口及其实现类的绑定)。事实上,Laravel 有好几十个服务提供者,用于管理框架核心组件的容器绑定。几乎框架里每一个组件的容器绑定都是靠服务提供者来完成的。你可以在 config/app.php 这个配置文件里查看项目目前有哪些服务提供者(从 Laravel 5.5 开始,Laravel 提供了包自动发现功能,所...

[ 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 的 Vue.js 中文学习教程 —— Class 与 Style 绑定

数据绑定一个常见的需求就是操作元素的class列表和内联样式,由于它们都是属性,所以我们可以使用v-bind来处理:我们只需要使用表达式来计算最终的字符串。不过,字符串拼接既麻烦又容易出错,因为这个原因,在v-bind用于class和style的时候,Vue.js对此专门进行了增强,除了字符串以外,这些表达式还可以计算为对象或数组。 绑定HTML Class 尽管你可以使用Musta...

[ 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方法注册一个绑定,该方法需要两个参数,第一个参数...