### **Manager & Factories** ###
Laravel has several ``Manager`` classes that manage the creation of driver-based components. These include the cache, session, authentication, and queue components. The manager class is responsible for creating a particular driver implementation based on the application's configuration. For example, the ``CacheManager`` class can create APC, Memcached, Native, and various other implementations of cache drivers.
Each of these managers includes an ``extend`` method which may be used to easily inject new driver resolution functionality into the manager. We'll cover each of these managers below, with examples of how to inject custom driver support into each of them.
> Learn About Your Managers
>
> Take a moment to explore the various ``Manager`` classes that ship with Laravel, such as the ``CacheManager`` and ``SessionManager``. Reading through these classes will give you a more thorough understanding of how Laravel works under the hood. All ``manager`` classes extend the ``Illuminate\Support\Manager`` base class, which provides some helpful, common functionality for each manager.
- Dependency Injection
- The Problem
- Build A Contract
- Take It further
- Too Much Java?
- The IoC Container
- Basic Binding
- Reflective Resolution
- Interface As Contract
- Strong Typing & Water Fowl
- A Contract Example
- Interface & Team Development
- Service Provider
- As Bootstrapper
- As Organizer
- Booting Providers
- Providing The Core
- Application Structure
- MVC Is Killing You
- Bye, Bye Models
- It's All About The Layers
- Where To Put "Stuff"
- Applied Architecture: Decoupling Handles
- Decoupling Handlers
- Other Handlers
- Extending The Framework
- Manager & Factories
- Cache
- Session
- Authentication
- IoC Based Extension
- Request Extension
- Single Responsibility Principle
- Open Closed Principle