php-simple/constructor-injection

There is no license information available for the latest version (v1) of this package.

Very very simple container example that injects dependency on class constructor.

v1 2023-02-01 17:35 UTC

This package is auto-updated.

Last update: 2024-05-29 20:47:02 UTC


README

Very very simple container example that injects dependency on class constructor

Install

  composer require php-simple/constructor-injection

Usage/Examples

bind() method

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();

bind() method with closure

$container->bind(User::class,function (){
    return new User();
});

$userInstance = $container->getBinding(User::class)

// Foooo
$userInstance->foo();

get() method

$userInstance = $container->get(User::class);

// Foooo
$userInstance->foo();

getBindings method()

  • returns all bind classes
$bindings = $container->getBindings();

print_r($bindings);

//Array
//(
//    [User] => Closure Object
//        (
//        )
//
//)