Version 1
[yaffs-website] / web / core / modules / system / tests / modules / form_test / src / Plugin / Block / RedirectFormBlock.php
1 <?php
2
3 namespace Drupal\form_test\Plugin\Block;
4
5 use Drupal\Core\Block\BlockBase;
6 use Drupal\Core\Form\FormBuilderInterface;
7 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
8 use Symfony\Component\DependencyInjection\ContainerInterface;
9
10 /**
11  * Provides a block containing a simple redirect form.
12  *
13  * @see \Drupal\form_test\Form\RedirectBlockForm
14  *
15  * @Block(
16  *   id = "redirect_form_block",
17  *   admin_label = @Translation("Redirecting form"),
18  *   category = @Translation("Forms")
19  * )
20  */
21 class RedirectFormBlock extends BlockBase implements ContainerFactoryPluginInterface {
22
23   /**
24    * The form builder.
25    *
26    * @var \Drupal\Core\Form\FormBuilderInterface
27    */
28   protected $formBuilder;
29
30   /**
31    * Constructs a new RedirectFormBlock.
32    *
33    * @param array $configuration
34    *   A configuration array containing information about the plugin instance.
35    * @param string $plugin_id
36    *   The plugin_id for the plugin instance.
37    * @param mixed $plugin_definition
38    *   The plugin implementation definition.
39    * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
40    *   The form builder.
41    */
42   public function __construct(array $configuration, $plugin_id, $plugin_definition, FormBuilderInterface $form_builder) {
43     parent::__construct($configuration, $plugin_id, $plugin_definition);
44
45     $this->formBuilder = $form_builder;
46   }
47
48   /**
49    * {@inheritdoc}
50    */
51   public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
52     return new static(
53       $configuration,
54       $plugin_id,
55       $plugin_definition,
56       $container->get('form_builder')
57     );
58   }
59
60   /**
61    * {@inheritdoc}
62    */
63   public function build() {
64     return $this->formBuilder->getForm('Drupal\form_test\Form\RedirectBlockForm');
65   }
66
67   /**
68    * {@inheritdoc}
69    *
70    * @todo Make cacheable once https://www.drupal.org/node/2351015 lands.
71    */
72   public function getCacheMaxAge() {
73     return 0;
74   }
75
76 }