3 namespace Drupal\Core\Controller;
5 use Drupal\Core\Form\FormBuilderInterface;
6 use Drupal\Core\Routing\RouteMatchInterface;
7 use Drupal\Core\DependencyInjection\ClassResolverInterface;
8 use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
11 * Wrapping controller for forms that serve as the main page body.
13 class HtmlFormController extends FormController {
18 * @var \Drupal\Core\DependencyInjection\ClassResolverInterface
20 protected $classResolver;
23 * Constructs a new \Drupal\Core\Routing\Enhancer\FormEnhancer object.
25 * @param \Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface $argument_resolver
26 * The argument resolver.
27 * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
29 * @param \Drupal\Core\DependencyInjection\ClassResolverInterface $class_resolver
32 public function __construct(ArgumentResolverInterface $argument_resolver, FormBuilderInterface $form_builder, ClassResolverInterface $class_resolver) {
33 parent::__construct($argument_resolver, $form_builder);
34 $this->classResolver = $class_resolver;
40 protected function getFormArgument(RouteMatchInterface $route_match) {
41 return $route_match->getRouteObject()->getDefault('_form');
47 protected function getFormObject(RouteMatchInterface $route_match, $form_arg) {
48 return $this->classResolver->getInstanceFromDefinition($form_arg);