library container
Dependency Injection Container
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
DI Container
Dependency Injection Container, (*1)
Installation
-
Run, (*2)
composer require appzcoder/container:"dev-master"
-
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)
dev-master
9999999-dev
Dependency Injection Container
Sources
Download
MIT
The Requires
container
di container
v1.0
1.0.0.0
Dependency Injection Container
Sources
Download
MIT
The Requires
container
di container
dev-legacy
dev-legacy
Dependency Injection Container
Sources
Download
MIT
The Requires
container
di container