扩展框架
介绍
Laravel 提供许多可扩展的地方让您自定义框架核心组件的行为,或甚至完全地取代它们。 例如,HasherInterface
接口定义了哈希工具,您可以基于应用程序的需求来实现它。 您也可以扩展 Request
对象,让您加入自己的便利 "辅助" 方法。 甚至您可以加入全新的认证、缓存和 session 驱动!
Laravel 组件一般以两种方式来扩展: 在 IoC 容器里绑定新的实现,或用 "工厂" 设计模式实现的 Manager
类来注册扩展。 在这个章节我们将会探索多种扩展框架的方法和查看必要的代码。
提示
记住, Laravel 组件通常用两种方法的其中之一来扩展: IoC 绑定和 Manager
类。 管理者类作为 "工厂" 设计模式的实现,并负责实体化基于驱动的工具,例如:缓存和 session。
管理者和工厂
Laravel 有几个 Manager
类用来管理建立基于驱动的组件。 这些类包括缓存、session、认证和队列组件。 管理者类负责基于应用程序的设定建立一个特定的驱动实现。 例如, CacheManager
类可以建立 APC、 Memcached 、文件和各种其他的缓存驱动实现.
这些管理者都拥有 extend
方法,它可以简单地用来注入新的驱动解析功能到管理者。 我们将会在下面随着如何注入自定义驱动支持给它们的例子,涵盖这些管理者的内容。
提示
建议花点时间来探索 Laravel 附带的各种 Manager
类,例如: CacheManager
和 SessionManager
。 看过这些类将会让您更彻底了解 Laravel 表面下是如何运作。 所有的管理者类继承 Illuminate\Support\Manager
基底类, 它提供一些有用、常见的功能给每一个管理者。