From 6d1355700e3821a84b72ad8078af098025c1e173 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Mon, 4 Mar 2024 12:14:03 +0000 Subject: [PATCH] Issue #3123209 by Hardik_Patel_12, nitesh624, _utsavsharma, Suresh Prabhu Parkala, andypost, jungle, smustgrave, msuthars: Replace non-test usages of \Drupal::formBuilder() with IoC injection (cherry picked from commit 9357f733bd7d61cfeb89f4c81bce2239708fea0a) --- core/modules/action/src/ActionListBuilder.php | 20 +++++++++++++++--- .../user/src/Plugin/Block/UserLoginBlock.php | 21 ++++++++++++++++--- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/core/modules/action/src/ActionListBuilder.php b/core/modules/action/src/ActionListBuilder.php index 88a7d7738a57..0c049b37de74 100644 --- a/core/modules/action/src/ActionListBuilder.php +++ b/core/modules/action/src/ActionListBuilder.php @@ -2,11 +2,13 @@ namespace Drupal\action; +use Drupal\action\Form\ActionAdminManageForm; use Drupal\Core\Action\ActionManager; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Config\Entity\ConfigEntityListBuilder; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Entity\EntityTypeInterface; +use Drupal\Core\Form\FormBuilderInterface; use Symfony\Component\DependencyInjection\ContainerInterface; /** @@ -38,11 +40,22 @@ class ActionListBuilder extends ConfigEntityListBuilder { * The action storage. * @param \Drupal\Core\Action\ActionManager $action_manager * The action plugin manager. + * @param \Drupal\Core\Form\FormBuilderInterface $formBuilder + * The form builder. */ - public function __construct(EntityTypeInterface $entity_type, EntityStorageInterface $storage, ActionManager $action_manager) { + public function __construct( + EntityTypeInterface $entity_type, + EntityStorageInterface $storage, + ActionManager $action_manager, + protected ?FormBuilderInterface $formBuilder = NULL, + ) { parent::__construct($entity_type, $storage); $this->actionManager = $action_manager; + if (!$formBuilder) { + @trigger_error('Calling ' . __METHOD__ . ' without the $formBuilder argument is deprecated in drupal:10.3.0 and it will be required in drupal:11.0.0. See https://www.drupal.org/node/3159776', E_USER_DEPRECATED); + $this->formBuilder = \Drupal::service('form_builder'); + } } /** @@ -52,7 +65,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI return new static( $entity_type, $container->get('entity_type.manager')->getStorage($entity_type->id()), - $container->get('plugin.manager.action') + $container->get('plugin.manager.action'), + $container->get('form_builder') ); } @@ -108,7 +122,7 @@ public function getDefaultOperations(EntityInterface $entity) { * {@inheritdoc} */ public function render() { - $build['action_admin_manage_form'] = \Drupal::formBuilder()->getForm('Drupal\action\Form\ActionAdminManageForm'); + $build['action_admin_manage_form'] = $this->formBuilder->getForm(ActionAdminManageForm::class); $build['action_header']['#markup'] = '<h3>' . $this->t('Available actions:') . '</h3>'; $build['action_table'] = parent::render(); if (!$this->hasConfigurableActions) { diff --git a/core/modules/user/src/Plugin/Block/UserLoginBlock.php b/core/modules/user/src/Plugin/Block/UserLoginBlock.php index 431d9edd4aab..f5a5bd4eea22 100644 --- a/core/modules/user/src/Plugin/Block/UserLoginBlock.php +++ b/core/modules/user/src/Plugin/Block/UserLoginBlock.php @@ -13,6 +13,8 @@ use Drupal\Core\Url; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Block\BlockBase; +use Drupal\Core\Form\FormBuilderInterface; +use Drupal\user\Form\UserLoginForm; use Drupal\user\UserInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -49,11 +51,23 @@ class UserLoginBlock extends BlockBase implements ContainerFactoryPluginInterfac * The plugin implementation definition. * @param \Drupal\Core\Routing\RouteMatchInterface $route_match * The route match. + * @param \Drupal\Core\Form\FormBuilderInterface $formBuilder + * The form builder. */ - public function __construct(array $configuration, $plugin_id, $plugin_definition, RouteMatchInterface $route_match) { + public function __construct( + array $configuration, + $plugin_id, + $plugin_definition, + RouteMatchInterface $route_match, + protected ?FormBuilderInterface $formBuilder = NULL, + ) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->routeMatch = $route_match; + if (!$formBuilder) { + @trigger_error('Calling ' . __METHOD__ . ' without the $formBuilder argument is deprecated in drupal:10.3.0 and it will be required in drupal:11.0.0. See https://www.drupal.org/node/3159776', E_USER_DEPRECATED); + $this->formBuilder = \Drupal::service('form_builder'); + } } /** @@ -64,7 +78,8 @@ public static function create(ContainerInterface $container, array $configuratio $configuration, $plugin_id, $plugin_definition, - $container->get('current_route_match') + $container->get('current_route_match'), + $container->get('form_builder') ); } @@ -84,7 +99,7 @@ protected function blockAccess(AccountInterface $account) { * {@inheritdoc} */ public function build() { - $form = \Drupal::formBuilder()->getForm('Drupal\user\Form\UserLoginForm'); + $form = $this->formBuilder->getForm(UserLoginForm::class); unset($form['name']['#attributes']['autofocus']); $form['name']['#size'] = 15; $form['pass']['#size'] = 15; -- GitLab