Very very simple container example that injects dependency on class constructor
composer require php-simple/constructor-injection
require_once __DIR__ . '/vendor/autoload.php';
class User
{
public $foo;
public function __construct(Foo $foo)
{
$this->foo = $foo
}
public function foo()
{
return $this->foo->sayFoo();
}
}
class Foo
{
public function sayFoo()
{
return 'Foooo'
}
}
$container = new \ConstructorInjection\Container();
$container->bind(User::class);
$userInstance = $container->getBinding(User::class)
// Foooo
$userInstance->foo();
$container->bind(User::class,function (){
return new User();
});
$userInstance = $container->getBinding(User::class)
// Foooo
$userInstance->foo();
$userInstance = $container->get(User::class);
// Foooo
$userInstance->foo();
- returns all bind classes
$bindings = $container->getBindings();
print_r($bindings);
//Array
//(
// [User] => Closure Object
// (
// )
//
//)