12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace Drupal\Core\Entity;
- use Drupal\Core\DependencyInjection\DeprecatedServicePropertyTrait;
- use Drupal\Core\Form\FormBuilderInterface;
- use Drupal\Core\Form\FormState;
- /**
- * Builds entity forms.
- */
- class EntityFormBuilder implements EntityFormBuilderInterface {
- use DeprecatedServicePropertyTrait;
- /**
- * {@inheritdoc}
- */
- protected $deprecatedProperties = ['entityManager' => 'entity.manager'];
- /**
- * The entity type manager service.
- *
- * @var \Drupal\Core\Entity\EntityTypeManagerInterface
- */
- protected $entityTypeManager;
- /**
- * The form builder.
- *
- * @var \Drupal\Core\Form\FormBuilderInterface
- */
- protected $formBuilder;
- /**
- * Constructs a new EntityFormBuilder.
- *
- * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
- * The entity type manager service.
- * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
- * The form builder.
- */
- public function __construct(EntityTypeManagerInterface $entity_type_manager, FormBuilderInterface $form_builder) {
- if ($entity_type_manager instanceof EntityManagerInterface) {
- @trigger_error('Passing the entity.manager service to EntityFormBuilder::__construct() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Pass the new dependencies instead. See https://www.drupal.org/node/2549139.', E_USER_DEPRECATED);
- $this->entityTypeManager = \Drupal::entityTypeManager();
- }
- else {
- $this->entityTypeManager = $entity_type_manager;
- }
- $this->formBuilder = $form_builder;
- }
- /**
- * {@inheritdoc}
- */
- public function getForm(EntityInterface $entity, $operation = 'default', array $form_state_additions = []) {
- $form_object = $this->entityTypeManager->getFormObject($entity->getEntityTypeId(), $operation);
- $form_object->setEntity($entity);
- $form_state = (new FormState())->setFormState($form_state_additions);
- return $this->formBuilder->buildForm($form_object, $form_state);
- }
- }
|