1. Go to this page and download the library: Download scruwi/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/ */
scruwi / container example snippets
$container = new Container([
new ClassResolver(['App\\Namespace1', 'App\\Namespace2']),
new ParameterResolver(['param1' => true, 'param2' => 'string']),
new DefinitionResolver([Definition1:class, Definition2:class]),
]);
class SomeClass
{
public function __construct(bool $param1) { /* $param1 === true */ }
}
class SpecificClass
{
public function __construct(bool $param1) { /* $param1 === false */ }
}
class SpecificClass
{
public function __construct(bool $param0 = 'default') { /* $param0 === 'default' */ }
}
class ExampleDefinition implements DefinitionInterface
{
public static function getId(): string
{
return ExampleClass::class;
}
public function __invoke(Container $container, ParameterResolver $resolver, BuildContext $context): object
{
return new ExampleClass();
}
}
public function __invoke(Container $container, ParameterResolver $resolver, BuildContext $context): object
{
$param1 = $resolver->resolve('param1', ExampleClass::class);
return new ExampleClass($param1);
}
class InterfaceDefinition implements DefinitionInterface
{
public function getId(): string
{
return SomeInterface::class;
}
public function __invoke(Container $container, ParameterResolver $resolver, BuildContext $context): object
{
if ($context->getTargetClass() === ClassWithInterfaceDependency::class) {
return new SomeClassImplementsInterface2();
}
return new SomeClassImplementsInterface1();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.