1. Go to this page and download the library: Download sergix44/container library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sergix44 / container example snippets
$container = new \SergiX44\Container\Container();
$container->bind(ServiceInterface::class, MyService::class);
$instance = $container->get(ClassThatUseMyService::class);
$container = new \SergiX44\Container\Container();
$container->singleton(ServiceInterface::class, MyService::class);
$instance = $container->get(ClassThatUseMyService::class);
$container = new \SergiX44\Container\Container();
$value = 'dynamic';
// factory
$container->bind(ServiceInterface::class, function (\Psr\Container\ContainerInterface $container) use ($value) {
return new MyService($container->get(AnotherService::class), $value);
});
// shared/singleton
$container->singleton(FooServiceInterface::class, function (\Psr\Container\ContainerInterface $container) {
return new FooService($container->get(ServiceInterface::class));
});
$instance = $container->get(ClassThatUseMyService::class);
$container = new \SergiX44\Container\Container();
$service = new MyService();
$container->set(ServiceInterface::class, $service);
// or even as string:
// $container->set('service', $service);
// $service = $container->get('service');
$instance = $container->get(ClassThatUseMyService::class);
// InvokableClass.php
class InvokableClass {
public function __invoke(ServiceInterface $service)
{
//
}
}
// ClassAndMethod.php
class ClassAndMethod {
public function method(ServiceInterface $service)
{
//
}
}
// --
$container = new \SergiX44\Container\Container();
$container->bind(ServiceInterface::class, MyService::class);
$result = $container->call(InvokableClass::class); // calls __invoke
$result = $container->call(new InvokableClass()); // calls __invoke
$result = $container->call([ClassAndMethod::class, 'method']); // calls method
$result = $container->call([new ClassAndMethod(), 'method']); // calls method
$result = $container->call(function (ServiceInterface $service) {
//
});
// InvokableClass.php
class InvokableClass {
public function __invoke(ServiceInterface $service, string $a, int $b)
{
//
}
}
$container = new \SergiX44\Container\Container();
// map parameter name => value
$result = $container->call(InvokableClass::class, ['a' => 'foo', 'b' => 123]);
// positional
$result = $container->call(InvokableClass::class, ['foo', 123]);
// InvokableClass.php
class InvokableClass {
public function __invoke(ServiceInterface $service, string $a, int $b)
{
// same result: b=456 and a=foo
}
}
$container = new \SergiX44\Container\Container();
$result = $container->call(InvokableClass::class, ['b' => 456, 'foo']);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.