symplify/autowire-array-parameter
Automatically inject array parameters into PHP services with minimal configuration. Symplify Autowire Array Parameter resolves array constructor arguments from container config, reducing boilerplate and making service wiring cleaner in Symfony/Laravel-style DI setups.
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.
How can I help you explore Laravel packages today?