Pull merge.
[yaffs-website] / web / core / lib / Drupal / Core / Controller / HtmlFormController.php
1 <?php
2
3 namespace Drupal\Core\Controller;
4
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;
9
10 /**
11  * Wrapping controller for forms that serve as the main page body.
12  */
13 class HtmlFormController extends FormController {
14
15   /**
16    * The class resolver.
17    *
18    * @var \Drupal\Core\DependencyInjection\ClassResolverInterface
19    */
20   protected $classResolver;
21
22   /**
23    * Constructs a new \Drupal\Core\Routing\Enhancer\FormEnhancer object.
24    *
25    * @param \Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface $argument_resolver
26    *   The argument resolver.
27    * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
28    *   The form builder.
29    * @param \Drupal\Core\DependencyInjection\ClassResolverInterface $class_resolver
30    *   The class resolver.
31    */
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;
35   }
36
37   /**
38    * {@inheritdoc}
39    */
40   protected function getFormArgument(RouteMatchInterface $route_match) {
41     return $route_match->getRouteObject()->getDefault('_form');
42   }
43
44   /**
45    * {@inheritdoc}
46    */
47   protected function getFormObject(RouteMatchInterface $route_match, $form_arg) {
48     return $this->classResolver->getInstanceFromDefinition($form_arg);
49   }
50
51 }