Skip to content
Snippets Groups Projects
Verified Commit f979f42e authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3323209 by Spokje, mondrake, smustgrave, alexpott, xjm: Deprecate...

Issue #3323209 by Spokje, mondrake, smustgrave, alexpott, xjm: Deprecate calling Drupal\block\Plugin\migrate\process\BlockTheme::_construct() with the $migration argument
parent 3fc94dc6
Branches
Tags
28 merge requests!54479.5.x SF update,!5014Issue #3071143: Table Render Array Example Is Incorrect,!4868Issue #1428520: Improve menu parent link selection,!4289Issue #1344552 by marcingy, Niklas Fiekas, Ravi.J, aleevas, Eduardo Morales...,!4114Issue #2707291: Disable body-level scrolling when a dialog is open as a modal,!4100Issue #3249600: Add support for PHP 8.1 Enums as allowed values for list_* data types,!3630Issue #2815301 by Chi, DanielVeza, kostyashupenko, smustgrave: Allow to create...,!3600Issue #3344629: Passing null to parameter #1 ($haystack) of type string is deprecated,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2062Issue #3246454: Add weekly granularity to views date sort,!1591Issue #3199697: Add JSON:API Translation experimental module,!1484Exposed filters get values from URL when Ajax is on,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1162Issue #3100350: Unable to save '/' root path alias,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!925Issue #2339235: Remove taxonomy hard dependency on node module,!877Issue #2708101: Default value for link text is not saved,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!844Resolve #3036010 "Updaters",!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
namespace Drupal\block\Plugin\migrate\process; namespace Drupal\block\Plugin\migrate\process;
use Drupal\migrate\Plugin\MigrationInterface; use Drupal\Core\Config\Config;
use Drupal\migrate\MigrateExecutableInterface; use Drupal\migrate\MigrateExecutableInterface;
use Drupal\migrate\Plugin\MigrationInterface;
use Drupal\migrate\ProcessPluginBase; use Drupal\migrate\ProcessPluginBase;
use Drupal\migrate\Row; use Drupal\migrate\Row;
use Drupal\Core\Config\Config;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
...@@ -17,22 +17,15 @@ ...@@ -17,22 +17,15 @@
*/ */
class BlockTheme extends ProcessPluginBase implements ContainerFactoryPluginInterface { class BlockTheme extends ProcessPluginBase implements ContainerFactoryPluginInterface {
/**
* Contains the configuration object factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected $configFactory;
/** /**
* Contains the system.theme configuration object. * Contains the system.theme configuration object.
*
* @var \Drupal\Core\Config\Config
*/ */
protected $themeConfig; protected Config $themeConfig;
/** /**
* List of themes available on the destination. * List of themes available on the destination.
*
* @var string[]
*/ */
protected array $themes; protected array $themes;
...@@ -45,15 +38,18 @@ class BlockTheme extends ProcessPluginBase implements ContainerFactoryPluginInte ...@@ -45,15 +38,18 @@ class BlockTheme extends ProcessPluginBase implements ContainerFactoryPluginInte
* The plugin ID for the plugin instance. * The plugin ID for the plugin instance.
* @param mixed $plugin_definition * @param mixed $plugin_definition
* The plugin implementation definition. * The plugin implementation definition.
* @param \Drupal\migrate\Plugin\MigrationInterface $migration * @param \Drupal\Core\Config\Config|\Drupal\migrate\Plugin\MigrationInterface $theme_config
* The migration entity.
* @param \Drupal\Core\Config\Config $theme_config
* The system.theme configuration factory object. * The system.theme configuration factory object.
* @param array $themes * @param string[]|\Drupal\Core\Config\Config $themes
* The list of themes available on the destination. * The list of themes available on the destination.
*/ */
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, Config $theme_config, array $themes) { public function __construct(array $configuration, $plugin_id, $plugin_definition, Config|MigrationInterface $theme_config, array|Config $themes) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration); parent::__construct($configuration, $plugin_id, $plugin_definition);
if ($theme_config instanceof MigrationInterface) {
@trigger_error('Calling ' . __CLASS__ . '::__construct() with the $migration argument is deprecated in drupal:10.1.0 and is removed in drupal:11.0.0. See https://www.drupal.org/node/3323212', E_USER_DEPRECATED);
$theme_config = func_get_arg(4);
$themes = func_get_arg(5);
}
$this->themeConfig = $theme_config; $this->themeConfig = $theme_config;
$this->themes = $themes; $this->themes = $themes;
} }
...@@ -61,12 +57,11 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition ...@@ -61,12 +57,11 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) { public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static( return new static(
$configuration, $configuration,
$plugin_id, $plugin_id,
$plugin_definition, $plugin_definition,
$migration,
$container->get('config.factory')->get('system.theme'), $container->get('config.factory')->get('system.theme'),
$container->get('theme_handler')->listInfo() $container->get('theme_handler')->listInfo()
); );
......
<?php
namespace Drupal\Tests\block\Unit\Plugin\migrate\process;
use Drupal\block\Plugin\migrate\process\BlockTheme;
use Drupal\Core\Config\Config;
use Drupal\migrate\Plugin\MigrationInterface;
use Drupal\Tests\UnitTestCase;
/**
* Tests the deprecation notices of the block theme.
*
* @group legacy
*/
class BlockThemeDeprecationTest extends UnitTestCase {
/**
* Tests the deprecation in the constructor.
*/
public function testConstructorDeprecation(): void {
$this->expectDeprecation('Calling Drupal\block\Plugin\migrate\process\BlockTheme::__construct() with the $migration argument is deprecated in drupal:10.1.0 and is removed in drupal:11.0.0. See https://www.drupal.org/node/3323212');
$migration = $this->prophesize(MigrationInterface::class);
$config = $this->prophesize(Config::class);
new BlockTheme(
[],
'',
[],
$migration->reveal(),
$config->reveal(),
[]
);
}
}
...@@ -825,11 +825,6 @@ parameters: ...@@ -825,11 +825,6 @@ parameters:
count: 1 count: 1
path: modules/block/src/BlockListBuilder.php path: modules/block/src/BlockListBuilder.php
-
message: "#^Method Drupal\\\\Component\\\\Plugin\\\\PluginBase\\:\\:__construct\\(\\) invoked with 4 parameters, 3 required\\.$#"
count: 1
path: modules/block/src/Plugin/migrate/process/BlockTheme.php
- -
message: "#^Variable \\$position might not be defined\\.$#" message: "#^Variable \\$position might not be defined\\.$#"
count: 4 count: 4
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment