composer require symplify/autowire-array-parameter
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel;
use Symplify\PackageBuilder\DependencyInjection\CompilerPass\AutowireArrayParameterCompilerPass;
class AppKernel extends Kernel
{
protected function build(ContainerBuilder $containerBuilder): void
{
$containerBuilder->addCompilerPass(
new AutowireArrayParameterCompilerPass(
[
// place for excluding types to resolve edge cases
'Sonata\CoreBundle\Model\Adapter\AdapterInterface',
]
)
);
}
}
This feature surpasses YAML-defined, tag-based or CompilerPass-based collectors in minimalistic way:
class Application
{
/**
* @var Command[]
*/
private $commands = [];
/**
* @param Command[] $commands
*/
public function __construct(array $commands)
{
$this->commands = $commands;
// instance of Command collected from all services
var_dump($commands);
}
}
In case you are experiencing a bug or want to request a new feature head over to the Symplify monorepo issue tracker
The sources of this package are contained in the Symplify monorepo. We welcome contributions for this package on symplify/symplify.