3.1. Aura.Di

3.1.1. Getting Started
3.1.1.1. Overview
3.1.1.1.1. Intended Usage
3.1.1.2. Container Instantiation
3.1.1.3. Creating Object Instances
3.1.2. Constructor Injection
3.1.3. Setter Injection
3.1.4. Class, Interface, and Trait Inheritance
3.1.4.1. Class Inheritance
3.1.4.2. Interface And Trait Inheritance
3.1.5. Services
3.1.6. Lazy Injection
3.1.6.1. Lazy Instances
3.1.6.2. Lazy Services
3.1.6.2.1. Setting
3.1.6.2.2. Getting
3.1.6.2.3. Getting-and-Calling
3.1.6.3. Lazy Values
3.1.6.4. Lazy Include and Require
3.1.6.5. Lazy Array
3.1.6.6. Lazy Callable
3.1.6.7. Generic Lazy Calls
3.1.7. Instance Factories
3.1.7.1. Broader Instantiation
3.1.8. Container Builder and Config Classes
3.1.9. Auto-Resolution Of Constructor Parameters
3.1.9.1. Auto-Resolving From Concrete Typehints
3.1.9.2. Auto-Resolving From Abstract and Interface Typehints
3.1.9.3. Auto-Resolving to Services
3.1.9.4. Overriding Auto-Resolution
3.1.10. Migrating from 2.x to 3.x
3.1.10.1. BC Breaks
3.1.10.1.1. Instantiation
3.1.10.1.2. setter vs setters
3.1.10.1.3. Automatic Locking
3.1.10.1.4. Config vs ContainerConfig
3.1.10.2. Features
3.1.10.2.1. lazyGetCall()
3.1.10.2.2. Instance Factories