symplify/auto-bind-parameter

This package is abandoned and no longer maintained. The author suggests using the symplify/package-builder package instead.

Auto bind parameters for your Symfony applications

Maintainers

👁 TomasVotruba

Package info

github.com/deprecated-packages/auto-bind-parameter

pkg:composer/symplify/auto-bind-parameter

Statistics

Installs: 2 338 107

Dependents: 1

Suggesters: 0

Stars: 24

8.3.16 2020-09-21 16:16 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT ae3502de5f5b0976d3a661dd671b6af692c3065c

This package is auto-updated.

Last update: 2020-09-29 15:16:56 UTC


README

*Deprecated: instead of magic parameter binding, use ParameterProvider with constants

👁 Downloads total

Install

composer require symplify/auto-bind-parameter

Usage

1. Register Compiler Pass in kernel

<?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. Auto Bind Parameters

Keep your configs simple enough:

 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: ..

And as any other bind:

<?php declare(strict_types=1);

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

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