for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace TMV\Messenger\Factory\Handler;
use Psr\Container\ContainerInterface;
use Symfony\Component\Messenger\Handler\HandlersLocatorInterface;
use TMV\Messenger\Handler\ContainerHandlersLocator;
final class HandlersLocatorFactory
{
/** @var string */
private $busName;
public function __construct(string $busName = 'messenger.bus.default')
$this->busName = $busName;
}
public function __invoke(ContainerInterface $container): HandlersLocatorInterface
/** @var array|array<string, mixed> $config */
$config = $container->has('config') ? $container->get('config') : [];
/** @var string[][]|array<string, array<string|callable>> $handlerDescriptors */
$handlerDescriptors = $config['messenger']['buses'][$this->busName]['handlers'] ?? [];
return new ContainerHandlersLocator($container, $handlerDescriptors);