У меня есть модель, которая вернет объект-значение группы в зависимости от переданного ему UID. Эта модель также содержит константы для групповых UID.
<?php
namespace V2\Models\Config;
class Groups
{
const UID_A = 'A';
const UID_B = 'B';
const UID_C = 'C';
const UID_D = 'D';
const UID_E = 'E';
/** @var \X\Group\Group */
private $group;
public function __construct(\X\Group\Group $group)
{
$this->group = $group;
}
public function getGroup(string $uid): \X\Core\ValueObject\Group
{
return $this->group->getByUid($uid);
}
}
I wi sh, чтобы ввести групповые ВО в службы в качестве аргумента, служба, в которую я sh вставляю группу, выглядит так:
v2.spencer.doc_control.revision.validator:
class: X\DocControl\Revision\Validator
autowire: true
arguments:
$referenceValidator: '@v2.x.doc_control.revision.reference.validator'
$privateDocsGroup: '?'
Я хочу для внедрения группового VO, возвращенного из фабрики. Группы :: getGroup (uid) передали, например, указанный c UID из приведенных выше определений аргументов (это не работает, но, надеюсь, передает мои намерения)
$privateDocsGroup: '@v2.groups:getGroup(!php/const:V2\Models\Groups::UID_C)'
// or perhaps
arguments:
$privateDocsGroup:
factory: 'v2.groups:getGroup'
arguments:
$uid: !php/const:V2\Models\Groups::UID_C
Возможно ли это, или мне нужно определить службы для каждой отдельной групповой ВО, возвращаемой из Factory (я ценю, что мог бы просто настроить службу для каждой групповой ВО и ввести ее, но это кажется большим конфигурации)?