HtmlFormController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace Drupal\Core\Controller;
  3. use Drupal\Core\Form\FormBuilderInterface;
  4. use Drupal\Core\Routing\RouteMatchInterface;
  5. use Drupal\Core\DependencyInjection\ClassResolverInterface;
  6. use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
  7. /**
  8. * Wrapping controller for forms that serve as the main page body.
  9. */
  10. class HtmlFormController extends FormController {
  11. /**
  12. * The class resolver.
  13. *
  14. * @var \Drupal\Core\DependencyInjection\ClassResolverInterface
  15. */
  16. protected $classResolver;
  17. /**
  18. * Constructs a new \Drupal\Core\Routing\Enhancer\FormEnhancer object.
  19. *
  20. * @param \Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface $argument_resolver
  21. * The argument resolver.
  22. * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
  23. * The form builder.
  24. * @param \Drupal\Core\DependencyInjection\ClassResolverInterface $class_resolver
  25. * The class resolver.
  26. */
  27. public function __construct(ArgumentResolverInterface $argument_resolver, FormBuilderInterface $form_builder, ClassResolverInterface $class_resolver) {
  28. parent::__construct($argument_resolver, $form_builder);
  29. $this->classResolver = $class_resolver;
  30. }
  31. /**
  32. * {@inheritdoc}
  33. */
  34. protected function getFormArgument(RouteMatchInterface $route_match) {
  35. return $route_match->getRouteObject()->getDefault('_form');
  36. }
  37. /**
  38. * {@inheritdoc}
  39. */
  40. protected function getFormObject(RouteMatchInterface $route_match, $form_arg) {
  41. return $this->classResolver->getInstanceFromDefinition($form_arg);
  42. }
  43. }