The dependency injection is a simple technique that allows us to escape from the shackles of tight coupling. Combined with interface type hints, we get a powerful technique to write loosely coupled code. This isolates and minimizes the impact of possible future application design changes as well as its defects. Nowadays, it is considered irresponsible to even write modular and large code base applications without embracing these simple techniques.
Moving forward, we will take a closer look at the state of the ecosystem around PHP packages, their creation, and distribution.