2017 © Pedro Peláez
 

library container

Dependency Injection Container

image

appzcoder/container

Dependency Injection Container

  • Wednesday, March 21, 2018
  • by appzcoder
  • Repository
  • 1 Watchers
  • 6 Stars
  • 21 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

DI Container

Dependency Injection Container, (*1)

Installation

  1. Run, (*2)

    composer require appzcoder/container:"dev-master"
    
  2. Add bellow lines to your script, (*3)

    require 'vendor/autoload.php';
    

Usage

class Foo // Has dependencies
{
    protected $bar;
    protected $fooBar;
    protected $name;

    public function __construct(Bar $bar, $name='Sohel Amin', $param2=null) // Dependency Injected
    {
        $this->bar = $bar;
        $this->name = $name;
    }

    public function setterMethod(FooBar $fooBar) // Dependency Injected on method
    {
        return $this->fooBar = $fooBar;
    }
}

class Bar { } // No dependencies

class FooBar { } // No dependencies


// Instantiate the container
$container = new Appzcoder\Container\Container();

// Registering class with dependencies
$container->set('Foo');

// Registering class with another name
$container->set('foo', 'Bar');

// Binding a closure object with a name
$container->setInstance('FooBar', function () {
    return new FooBar();
});

// Registering class with parameters
$container->set('Foo', 'Foo', ['param 1', 'param 2']);

// Binding an instance with a name
$instance = new FooBar();
$container->setInstance('FooBar', $instance);

// Binding an instance/object with container's array
$container['FooBar'] = new FooBar();

// Calling a setter method with dependencies
$container->set('Foo', 'Foo', ['param 1', 'param 2']);
$instance = $container->get('Foo');
$container->call([$instance, 'setterMethod'], ['param 1', 'param 2']);

// Accessing container or getting instances
$instance1 = $container->get('Foo');
$instance2 = $container['Foo']; // For this should have registered or bounded "Foo"

Author

Sohel Amin, (*4)

The Versions

21/03 2018

dev-master

9999999-dev

Dependency Injection Container

  Sources   Download

MIT

The Requires

 

container di container

19/03 2016

v1.0

1.0.0.0

Dependency Injection Container

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

container di container

19/10 2015

dev-legacy

dev-legacy

Dependency Injection Container

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

container di container