PHP Dependency Injection
29 Jul 2018Keyword: PHP-DI, PSR-11, Autowriing
Dependency injection allow you inject an object into another object1.
Dependency Injection Container is the way to manage injecting and reading objects and third party libraries in your application.
PHP-FIG PSR-112 is a standard guide you to implement container.
interface ContainerInterface {
public function get($id);
public function has($id);
}
Example
class Wheel
{
}
class Car
{
private $wheel;
public function __construct(Wheel $wheel)
{
$this->wheel = $wheel;
}
}
$wheel = new Wheel;
$car = new Car($wheel);
At above example, every new Car
object need Wheel
object. That is dependency.
new Car
object is dependent on Wheel
object.
As we can see, PSR-11 define two method has
and get
. get
method will resolve dependency by using Reflection
3. It provides autowiring4.
PHP has native Reflection
5.
Want study more about dependency injection, check out PHP-DI6.
There is also another example demo a very simple container7.