diff --git a/core/modules/action/src/ActionListBuilder.php b/core/modules/action/src/ActionListBuilder.php index 88a7d7738a572f2aad9427456b33622da86c8c9c..0c049b37de74f745b6d25e6982b8893536710ecf 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 431d9edd4aab36aee14d9bba7d81eced2728051e..f5a5bd4eea22199fc180c9d0d7d194e79c550dbe 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;