1
私はSymfony DIを使って、同じクラスのオブジェクトをさまざまなプロパティ値で取得しようとしていますが、同じオブジェクトを受け取ります。私はSymfonyのdocを探求しようとしましたが、私は答えを見つけることができません。Symfony Dependency Injection(Recursively)で同じクラスの複数のオブジェクトを取得するには?
<?php
use Symfony\Component\DependencyInjection\ContainerBuilder;
class Foo
{
public $container;
public $booCollection = [];
public function __construct()
{
$this->container = $container = new ContainerBuilder();
$this->container->setParameter('id', '');
$this->container->register('boo', 'Boo')
->addArgument('%booid%');
}
public function getListOfBoo()
{
for ($id = 1; $id <= 2; $id++) {
$this->container->setParameter('booid', $id);
$this->booCollection[] = $this->container->get('boo');
}
}
}
class Boo
{
public $id;
public function __construct($id)
{
$this->id = $id;
}
}
$foo = new Foo();
$foo->getListOfBoo();
var_dump($foo->booCollection);
?>
結果:
array (size=2)
0 =>
object(Boo)[32]
public 'id' => int 1
1 =>
object(Boo)[32]
public 'id' => int 1
しかし、私がする必要がある:
array (size=2)
0 =>
object(Boo)[32]
public 'id' => int 1
1 =>
object(Boo)[32]
public 'id' => int 2
それが動作する、ありがとう – trentlor