The Dependency Injection component acts as the glue that holds our application together. In a modern Symfony application, auto-wiring, auto-configuration and auto-discovery are used to generate the correct dependency tree. But how do these processes work behind the scenes? What would happen if they weren’t there?