Introduction 介绍
Laravel offers many extension points for you to customize the behavior of the framework's core components, or even replace them entirely. For example, the hashing facilites are defined by a HasherInterface contract, which you may implement based on your application's requirements. You may also extend the Request object, allowing you to add your own convenient "helper" methods. You may even add entirely new authentication, cache, and session drivers!
为了方便你自定义框架核心组件,Laravel 提供了大量可以扩展的地方。你甚至可以完全替换掉旧组件。例如:哈希器遵守了 HasherInterface 接口,你可以按照你自己应用的需求来重新实现。你也可以扩展 Request 对象,添加你自己用的顺手的 “helper” 方法。你甚至可以添加全新的身份认证、缓存和会话机制!
Laravel components are generally extended in two ways: binding new implementations in the IoC container, or registering an extension with a Manager class, which are implementations of the "Factory" design pattern. In this chapter we'll explore the various methods of extending the framework and examine the necessary code.
Laravel 组件通常有两种扩展方式:在 IoC 容器里面绑定新实现,或者用 Manager 类注册一个扩展,该扩展采用了工厂模式实现。 在本章中我们将探索不同的扩展方式并检查我们都需要些什么代码。
Methods Of Extension 扩展方式
Remember, Laravel components are typically extended in one of two ways: IoC bindings and the Manager classes. The manager classes serve as an implementation of the "factory" design pattern, and are responsible for instantiating driver based facilities such as cache and session.
要记住 Laravel 通常有以下两种扩展方式:通过 IoC 绑定和通过 Manager 类(下文译作“管理类”)。其中管理类实现了工厂设计模式,负责组件的实例化。比如缓存和会话机制。