Я пытаюсь создать пользовательский элемент формы, в принципе все работает, но я бы хотел правильно ввести имя. Позволь мне объяснить:
use Application\Form\Element\Custom;
class CustomForm extends Form
{
public function init(){
$this->add([
'name' => 'themagicname',
'type' => Custom::class,
]);
}
}
У меня есть форма, которая создает экземпляр пользовательского элемента, пользовательский элемент отображается в моем module.config.php
как:
use Application\Form\Element\Custom;
use Application\Factory\Form\Element\CustomFactory;
return [
//...
'form_elements' => [
'factories' => [
Custom::class => CustomFactory::class,
],
],
//...
];
Фабрика выглядит следующим образом и увольняется правильно:
class CustomFactory implements Factory
{
public function createService( ServiceLocatorInterface $serviceLocator )
{
/**
* @var \Doctrine\Common\Persistence\ObjectRepository $userRepository
* @var \Zend\InputFilter\InputFilterPluginManager $serviceLocator
*/// bunch of factory-ish things here
return new Custom( 'helpppp', ... );
}
}
Теперь загадка: где я написал «helpppp», в идеале нужно было бы перенести «химическое имя», которое было передано при создании на уровне формы. Как этот массив конфигурации переправляется на завод? я пробовал MutableCreationOptionsInterface
но это, кажется, не применимо здесь.
Спасибо за ваше руководство.
Задача ещё не решена.
Других решений пока нет …