Register services
namespace Vendor\Plugin;
use Micro\Framework\Kernel\Plugin\DependencyProviderInterface;
use Micro\Component\DependencyInjection\Container;
class ExamplePlugin implements DependencyProviderInterface
{
public function provideDependencies(Container $container): void
{
$container->register('service-id', function() {
return new ServiceExample();
});
}
}
Locate services
$service = $composer->get('service-id');
Inject services
namespace Vendor\Plugin;
use Micro\Framework\Kernel\Plugin\DependencyProviderInterface;
use Micro\Component\DependencyInjection\Container;
class ExamplePlugin implements DependencyProviderInterface
{
public function provideDependencies(Container $container): void
{
$container->register('service-id', function(
SomeServiceInterface $service
) {
return new ServiceExample($service);
});
}
}
Decorate services
class ExamplePlugin implements DependencyProviderInterface
{
public function provideDependencies(Container $container): void
{
$container->decorate(SomeServiceInterface::class, function(
SomeServiceInterface $service,
LoggerInterface $logger
) {
return new ServiceDecoratorServiceExample($service, $logger);
});
}
}