2.2. Aura.Di

2.2.1. Getting Started
2.2.1.1. Overview
2.2.1.1.1. Intended Usage
2.2.1.2. Container Instantiation
2.2.1.3. Creating Object Instances
2.2.2. Constructor Injection
2.2.3. Setter Injection
2.2.4. Mutate object after instantion
2.2.5. Class, Interface, and Trait Inheritance
2.2.5.1. Class Inheritance
2.2.5.2. Interface And Trait Inheritance
2.2.6. Services
2.2.7. Lazy Injection
2.2.7.1. Lazy Instances
2.2.7.2. Lazy Services
2.2.7.2.1. Setting
2.2.7.2.2. Getting
2.2.7.2.3. Getting-and-Calling
2.2.7.3. Lazy Values
2.2.7.4. Lazy Include and Require
2.2.7.5. Lazy Array
2.2.7.6. Lazy Callable
2.2.7.7. Generic Lazy Calls
2.2.8. Instance Factories
2.2.8.1. Broader Instantiation
2.2.9. Container Builder and Config Classes
2.2.10. Auto-Resolution Of Constructor Parameters
2.2.10.1. Auto-Resolving From Concrete Typehints
2.2.10.2. Auto-Resolving From Abstract and Interface Typehints
2.2.10.3. Auto-Resolving to Services
2.2.10.4. Overriding Auto-Resolution
2.2.11. Serializing the Container
2.2.12. Migrating
2.2.12.1. Migrating from 3.x to 4.x
2.2.12.1.1. Dropped PHP 7.1 and lower, no HHVM
2.2.12.1.2. Type-hinting
2.2.12.1.3. InjectionFactory::newInstance()
2.2.12.1.4. Container Interop
2.2.12.1.5. Dropped features
2.2.12.2. Migrating from 2.x to 3.x
2.2.12.2.1. BC Breaks
2.2.12.2.1.1. Instantiation
2.2.12.2.1.2. setter vs setters
2.2.12.2.1.3. Automatic Locking
2.2.12.2.1.4. Config vs ContainerConfig
2.2.12.2.2. Features
2.2.12.2.2.1. lazyGetCall()
2.2.12.2.2.2. Instance Factories