Upgraded drupal core with security updates
[yaffs-website] / web / core / lib / Drupal / Core / Entity / EntityFormBuilder.php
1 <?php
2
3 namespace Drupal\Core\Entity;
4
5 use Drupal\Core\Form\FormBuilderInterface;
6 use Drupal\Core\Form\FormState;
7
8 /**
9  * Builds entity forms.
10  */
11 class EntityFormBuilder implements EntityFormBuilderInterface {
12
13   /**
14    * The entity manager.
15    *
16    * @var \Drupal\Core\Entity\EntityManagerInterface
17    */
18   protected $entityManager;
19
20   /**
21    * The form builder.
22    *
23    * @var \Drupal\Core\Form\FormBuilderInterface
24    */
25   protected $formBuilder;
26
27   /**
28    * Constructs a new EntityFormBuilder.
29    *
30    * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
31    *   The entity manager.
32    * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
33    *   The form builder.
34    */
35   public function __construct(EntityManagerInterface $entity_manager, FormBuilderInterface $form_builder) {
36     $this->entityManager = $entity_manager;
37     $this->formBuilder = $form_builder;
38   }
39
40   /**
41    * {@inheritdoc}
42    */
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);
46
47     $form_state = (new FormState())->setFormState($form_state_additions);
48     return $this->formBuilder->buildForm($form_object, $form_state);
49   }
50
51 }