HtmlFormController.php 1.5 KB

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