* element factory edded for doctrine forms

* some fields changed to optional
This commit is contained in:
Dávid Danyi
2018-04-13 18:16:06 +02:00
parent 117c10a56a
commit 71d6577810
11 changed files with 107 additions and 30 deletions

View File

@@ -24,6 +24,7 @@ class ConfigProvider
{
return [
'dependencies' => $this->getDependencies(),
'form_elements' => $this->getFormElements(),
];
}
@@ -45,4 +46,19 @@ class ConfigProvider
],
];
}
/**
* Returns the form dependencies
*/
public function getFormElements() : array
{
return [
'aliases' => [
'doctrine.object_select' => Form\Element\ObjectSelect::class,
],
'factories' => [
Form\Element\ObjectSelect::class => Form\Element\ElementFactory::class,
],
];
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace DoctrineExpressiveModule\Form\Element;
use Interop\Container\ContainerInterface;
class ElementFactory
{
public function __invoke(ContainerInterface $container, string $elementClass)
{
$em = $container->get('doctrine.entity_manager.orm_default');
/** @var ObjectSelect|ObjectRadio|ObjectMultiCheckbox $element */
$element = new $elementClass();
$element->setOption('object_manager', $em);
return $element;
}
}