3 namespace Drupal\Core\Entity;
5 use Drupal\Core\Form\FormBuilderInterface;
6 use Drupal\Core\Form\FormState;
11 class EntityFormBuilder implements EntityFormBuilderInterface {
16 * @var \Drupal\Core\Entity\EntityManagerInterface
18 protected $entityManager;
23 * @var \Drupal\Core\Form\FormBuilderInterface
25 protected $formBuilder;
28 * Constructs a new EntityFormBuilder.
30 * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
32 * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
35 public function __construct(EntityManagerInterface $entity_manager, FormBuilderInterface $form_builder) {
36 $this->entityManager = $entity_manager;
37 $this->formBuilder = $form_builder;
43 public function getForm(EntityInterface $entity, $operation = 'default', array $form_state_additions = []) {
44 $form_object = $this->entityManager->getFormObject($entity->getEntityTypeId(), $operation);
45 $form_object->setEntity($entity);
47 $form_state = (new FormState())->setFormState($form_state_additions);
48 return $this->formBuilder->buildForm($form_object, $form_state);