2021-12-11 827次浏览

First version of Factory package was released. This package provides abstract object factory allowing to create objects by given definition with dependencies resolved by a PSR-11 container. It is useful if you need to create objects using definition syntax and/or want to configure defaults for objects created.

$container = new PSR11DependencyInjectionContainer();
$factoryConfig = [
    EngineInterface::class => [
        'class' => EngineMarkOne::class,
        '__construct()' => [
            'power' => 42,
        ],
    ]
];

$factory = new Factory($container, $factoryConfig);

$one = $factory->create(EngineInterface::class);
$two = $factory->create([
    'class' => EngineInterface::class,
    '__construct()' => [
        'power' => 146,
    ],
]);

See package README for more details.