Пример определения службы, который я хочу преобразовать:
MyService: class: MyClass calls: - [add, ["%param1%", "%param2%"]] - [add, ["%param3%", "%param4%"]]
И это скомпилировано для:
$instance->add('param1', 'param2'); $instance->add('param3', 'param4');
По моему вопросу # 38822898 я пробую следующее:
MyService: class: MyClass calls: - - add - - "%param1%" - "%param2%" - add - - "%param3%" - "%param4%"
И это скомпилировано для:
$instance->add('param1', 'param2');
Итак, где проблема во втором примере YAML?
UPD # 1
Согласно моему предыдущему вопросу, следующий пример YAML также не компилируется для двух вызовов метода «добавить», только один:
MyAnotherService: class: MyAnotherClass factory: - MyFactoryClass - create calls: - - add - - >- @=service('AnotherService1').create( service('AnotherService2'), service('AnotherService3') ) - add - - >- @=service('AnotherService1').create( service('AnotherService3'), service('AnotherService4') )
Скомпилирует:
$instance->add($this->get("AnotherService1")->create($this->get("AnotherService2"), $this->get("AnotherService3")));
В вашем расширении отсутствует a -
, это должно быть:
MyService: class: MyClass calls: - - add - - "%param1%" - "%param2%" - # < this one is missing - add - - "%param3%" - "%param4%"
В вашем «переписывании» два add
скаляров являются частью одной и той же последовательности, но в вашем оригинале они являются первыми элементами из разных элементов родительской последовательности.
Аналогичная проблема возникает и во втором примере.