symplify/auto-bind-parameter

此包已被废弃,不再维护。作者建议使用symplify/package-builder包。

自动绑定您的Symfony应用的参数


README

*已弃用:使用常量代替魔法参数绑定,请使用ParameterProvider

Downloads total

安装

composer require symplify/auto-bind-parameter

用法

1. 在kernel中注册编译器Pass

<?php declare(strict_types=1);

namespace App;

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel;
use Symplify\AutoBindParameter\DependencyInjection\CompilerPass\AutoBindParameterCompilerPass;

class AppKernel extends Kernel
{
    protected function build(ContainerBuilder $containerBuilder): void
    {
        $containerBuilder->addCompilerPass(new AutoBindParameterCompilerPass());
    }
}

2. 自动绑定参数

保持您的配置尽可能简单

 parameters:
     entity_repository_class: 'Doctrine\ORM\EntityRepository'
     entity_manager_class: 'Doctrine\ORM\EntityManager'

 services:
-    _defaults:
-        bind:
-            $entityRepositoryClass: '%entity_repository_class%'
-            $entityManagerClass: '%entity_manager_class%'
-
     Rector\:
         resource: ..

就像任何其他绑定一样

<?php declare(strict_types=1);

class SomeClass
{
    /**
     * @var string
     */
    private $entityRepositoryClass;

    public function __construct(string $entityRepositoryClass)
    {
        $this->entityRepositoryClass = $entityRepositoryClass;
    }
}