Skip to content

Commit

Permalink
Merge branch 'main' into action-attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
bbrala authored Jan 14, 2024
2 parents 1b0f6c9 + 0617aa1 commit 5b5bc68
Show file tree
Hide file tree
Showing 83 changed files with 303 additions and 172 deletions.
1 change: 1 addition & 0 deletions .github/workflows/functional_test__rector_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
run_functional_test:
name: Functional Test | PHP ${{ matrix.php-version }} | Drupal ${{ matrix.drupal }}"
strategy:
fail-fast: false
matrix:
include:
- php-version: "7.4"
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"ast"
],
"require": {
"rector/rector": "~0.18.0",
"rector/rector": "~0.19.0",
"webflo/drupal-finder": "^1.2"
},
"license": "MIT",
Expand Down
9 changes: 8 additions & 1 deletion config/drupal-10/drupal-10.2-deprecations.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,16 @@
declare(strict_types=1);

use DrupalRector\Drupal10\Rector\Deprecation\ActionAnnotationToAttributeRector;
use DrupalRector\Rector\Deprecation\FunctionToStaticRector;
use DrupalRector\Rector\ValueObject\FunctionToStaticConfiguration;
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
// @see https://www.drupal.org/node/3395575
// https://www.drupal.org/node/3395575
$rectorConfig->rule(ActionAnnotationToAttributeRector::class);

// https://www.drupal.org/node/2999981
$rectorConfig->ruleWithConfiguration(FunctionToStaticRector::class, [
new FunctionToStaticConfiguration('10.2.0', 'format_size', '\Drupal\Core\StringTranslation\ByteSizeMarkup', 'create'),
]);
};
2 changes: 1 addition & 1 deletion config/drupal-8/drupal-8.2-deprecations.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
});
// https://www.drupal.org/node/2802569
$rectorConfig->ruleWithConfiguration(FunctionToStaticRector::class, [
new \DrupalRector\Rector\ValueObject\FunctionToStaticConfiguration(
new DrupalRector\Rector\ValueObject\FunctionToStaticConfiguration(
'8.2.0',
'file_directory_os_temp',
'Drupal\Component\FileSystem\FileSystem',
Expand Down
2 changes: 1 addition & 1 deletion config/drupal-8/drupal-8.6-deprecations.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
$rectorConfig->singleton(AddCommentService::class, function () {
return new AddCommentService();
});
$rectorConfig->ruleWithConfiguration(\DrupalRector\Drupal8\Rector\Deprecation\StaticToFunctionRector::class, [
$rectorConfig->ruleWithConfiguration(DrupalRector\Drupal8\Rector\Deprecation\StaticToFunctionRector::class, [
// https://www.drupal.org/node/2850048
new StaticToFunctionConfiguration('Drupal\Component\Utility\Unicode', 'strlen', 'mb_strlen'),
// https://www.drupal.org/node/2850048
Expand Down
14 changes: 13 additions & 1 deletion config/drupal-9/drupal-9.1-deprecations.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
use DrupalRector\Services\AddCommentService;
use Rector\Config\RectorConfig;
use Rector\PHPUnit\Set\PHPUnitSetList;
use Rector\Renaming\Rector\StaticCall\RenameStaticMethodRector;
use Rector\Renaming\ValueObject\RenameStaticMethod;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->singleton(AddCommentService::class, function () {
Expand All @@ -40,7 +42,7 @@
$rectorConfig->rule(AssertNoFieldByNameRector::class);
$rectorConfig->rule(AssertFieldByIdRector::class);

$rectorConfig->ruleWithConfiguration(\DrupalRector\Drupal9\Rector\Deprecation\AssertLegacyTraitRector::class, [
$rectorConfig->ruleWithConfiguration(DrupalRector\Drupal9\Rector\Deprecation\AssertLegacyTraitRector::class, [
new AssertLegacyTraitConfiguration('assertLinkByHref', 'linkByHrefExists'),
new AssertLegacyTraitConfiguration('assertLink', 'linkExists'),
new AssertLegacyTraitConfiguration('assertNoEscaped', 'assertNoEscaped'),
Expand Down Expand Up @@ -95,4 +97,14 @@
$rectorConfig->rule(GetRawContentRector::class);
$rectorConfig->rule(GetAllOptionsRector::class);
$rectorConfig->rule(UserPasswordRector::class);

// Change record: https://www.drupal.org/node/3162663
$rectorConfig->ruleWithConfiguration(RenameStaticMethodRector::class, [
new RenameStaticMethod(
'Drupal\Component\Utility\Bytes',
'toInt',
'Drupal\Component\Utility\Bytes',
'toNumber'
),
]);
};
17 changes: 14 additions & 3 deletions config/drupal-9/drupal-9.3-deprecations.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

declare(strict_types=1);

use DrupalRector\Drupal8\Rector\Deprecation\ConstantToClassConstantRector;
use DrupalRector\Drupal8\Rector\ValueObject\ConstantToClassConfiguration;
use DrupalRector\Drupal9\Rector\Deprecation\ExtensionPathRector;
use DrupalRector\Drupal9\Rector\Deprecation\FileBuildUriRector;
use DrupalRector\Drupal9\Rector\Deprecation\FunctionToEntityTypeStorageMethod;
Expand Down Expand Up @@ -31,9 +33,9 @@
]);

// Change record: https://www.drupal.org/node/2940031
$rectorConfig->rule(\DrupalRector\Drupal9\Rector\Deprecation\FileCreateUrlRector::class);
$rectorConfig->rule(\DrupalRector\Drupal9\Rector\Deprecation\FileUrlTransformRelativeRector::class);
$rectorConfig->rule(\DrupalRector\Drupal9\Rector\Deprecation\FromUriRector::class);
$rectorConfig->rule(DrupalRector\Drupal9\Rector\Deprecation\FileCreateUrlRector::class);
$rectorConfig->rule(DrupalRector\Drupal9\Rector\Deprecation\FileUrlTransformRelativeRector::class);
$rectorConfig->rule(DrupalRector\Drupal9\Rector\Deprecation\FromUriRector::class);

// Change record: https://www.drupal.org/node/3223520
$rectorConfig->ruleWithConfiguration(FunctionToServiceRector::class, [
Expand Down Expand Up @@ -66,4 +68,13 @@
new FunctionToFirstArgMethodConfiguration('taxonomy_term_uri', 'toUrl'),
new FunctionToFirstArgMethodConfiguration('taxonomy_term_title', 'label'),
]);

// Change record: https://www.drupal.org/node/3022147
$rectorConfig->ruleWithConfiguration(ConstantToClassConstantRector::class, [
new ConstantToClassConfiguration(
'FILE_STATUS_PERMANENT',
'Drupal\file\FileInterface',
'STATUS_PERMANENT',
),
]);
};
2 changes: 1 addition & 1 deletion config/drupal-9/drupal-9.4-deprecations.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@

return static function (Rector\Config\RectorConfig $rectorConfig): void {
// Change record https://www.drupal.org/node/3220952
$rectorConfig->rule(\DrupalRector\Drupal9\Rector\Deprecation\ModuleLoadInstallRector::class);
$rectorConfig->rule(DrupalRector\Drupal9\Rector\Deprecation\ModuleLoadRector::class);
};
19 changes: 13 additions & 6 deletions docs/rules_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -715,15 +715,22 @@ Fixes deprecated `AssertLegacyTrait::getRawContent()` calls

<br>

### ModuleLoadInstallRector
### ModuleLoadRector

Fixes deprecated `module_load_install()` calls

- class: [`DrupalRector\Drupal9\Rector\Deprecation\ModuleLoadInstallRector`](../src/Drupal9/Rector/Deprecation/ModuleLoadInstallRector.php)
- class: [`DrupalRector\Drupal9\Rector\Deprecation\ModuleLoadRector`](../src/Drupal9/Rector/Deprecation/ModuleLoadRector.php)

```diff
-module_load_install('example');
+\Drupal\Core\Extension\ModuleHandler::loadInclude('example', 'install');
+\Drupal::moduleHandler()->loadInclude('example', 'install');
$type = 'install';
$module = 'example';
$name = 'name';
-module_load_include($type, $module, $name);
-module_load_include($type, $module);
+\Drupal::moduleHandler()->loadInclude($module, $type, $name);
+\Drupal::moduleHandler()->loadInclude($module, $type);
```

<br>
Expand Down Expand Up @@ -862,10 +869,10 @@ Remove DeprecationHelper calls for versions before configured minimum requiremen
```diff
$settings = [];
$filename = 'simple_filename.yaml';
-DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '9.1.0', fn() => old_function(), fn() => new_function());
-DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.5.0', fn() => drupal_rewrite_settings($settings, $filename), fn() => SettingsEditor::rewrite($filename, $settings));
-DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '9.1.0', fn() => new_function(), fn() => old_function());
-DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.5.0', fn() => SettingsEditor::rewrite($filename, $settings), fn() => drupal_rewrite_settings($settings, $filename));
+drupal_rewrite_settings($settings, $filename);
DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '11.1.0', fn() => old_function(), fn() => new_function());
DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '11.1.0', fn() => new_function(), fn() => old_function());
```

<br>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
function simple_example() {
$settings = [];
$filename = 'simple_filename.yaml';
DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', fn() => drupal_rewrite_settings($settings, $filename), fn() => SettingsEditor::rewrite($filename, $settings));
DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '10.1.0', fn() => SettingsEditor::rewrite($filename, $settings), fn() => drupal_rewrite_settings($settings, $filename));
}
5 changes: 5 additions & 0 deletions fixtures/d9/rector_examples/rector_examples.module
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

use Drupal\Component\Utility\Bytes;
function extension_paths() {
drupal_get_path('module', 'node');
drupal_get_path('theme', 'seven');
Expand All @@ -13,3 +14,7 @@ function rector_examples_with_render() {
$build = [];
$output = render($build);
}

function rector_utility_bytes_to_int() {
$int = Bytes::toInt("15");
}
6 changes: 6 additions & 0 deletions fixtures/d9/rector_examples_updated/rector_examples.module
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

use Drupal\Component\Utility\Bytes;
function extension_paths() {
\Drupal::service('extension.list.module')->getPath('node');
\Drupal::service('extension.list.theme')->getPath('seven');
Expand All @@ -13,3 +14,8 @@ function rector_examples_with_render() {
$build = [];
$output = \Drupal::service('renderer')->render($build);
}

function rector_utility_bytes_to_int() {
$int = Bytes::toNumber("15");
}

8 changes: 8 additions & 0 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,11 @@ parameters:
message: "#^Call to an undefined method PHPStan\\\\Type\\\\Type\\:\\:getValue\\(\\)\\.$#"
count: 1
path: src/Drupal9/Rector/Deprecation/ExtensionPathRector.php

-
message: """
#^Fetching deprecated class constant REMOVE_NODE of class PhpParser\\\\NodeTraverser\\:
Use NodeVisitor\\:\\:REMOVE_NODE instead\\.$#
"""
count: 1
path: src/Drupal9/Rector/Deprecation/PassRector.php
4 changes: 2 additions & 2 deletions src/Drupal10/Rector/Deprecation/SystemTimeZonesRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
use DrupalRector\Rector\ValueObject\DrupalIntroducedVersionConfiguration;
use PhpParser\Node;
use PhpParser\Node\Expr\ConstFetch;
use Rector\Core\PhpParser\Node\Value\ValueResolver;
use Rector\PhpParser\Node\Value\ValueResolver;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -21,7 +21,7 @@ class SystemTimeZonesRector extends AbstractDrupalCoreRector
protected array $configuration;

/**
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
* @var ValueResolver
*/
private ValueResolver $valueResolver;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

use DrupalRector\Drupal8\Rector\ValueObject\ConstantToClassConfiguration;
use PhpParser\Node;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down
6 changes: 3 additions & 3 deletions src/Drupal8/Rector/Deprecation/DBRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
use PhpParser\Node;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\MethodCall;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down Expand Up @@ -61,7 +61,7 @@ class DBRector extends AbstractRector implements ConfigurableRectorInterface
private array $configuration;

/**
* @var \DrupalRector\Services\AddCommentService
* @var AddCommentService
*/
private AddCommentService $commentService;

Expand Down
2 changes: 1 addition & 1 deletion src/Drupal8/Rector/Deprecation/DrupalLRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace DrupalRector\Drupal8\Rector\Deprecation;

use PhpParser\Node;
use Rector\Core\Rector\AbstractRector;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down
4 changes: 2 additions & 2 deletions src/Drupal8/Rector/Deprecation/DrupalServiceRenameRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

use DrupalRector\Drupal8\Rector\ValueObject\DrupalServiceRenameConfiguration;
use PhpParser\Node;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down
4 changes: 2 additions & 2 deletions src/Drupal8/Rector/Deprecation/DrupalSetMessageRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode;
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -36,7 +36,7 @@ final class DrupalSetMessageRector extends AbstractRector
use FindParentByTypeTrait;

/**
* @var \DrupalRector\Services\AddCommentService
* @var AddCommentService
*/
private AddCommentService $commentService;

Expand Down
2 changes: 1 addition & 1 deletion src/Drupal8/Rector/Deprecation/DrupalURLRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace DrupalRector\Drupal8\Rector\Deprecation;

use PhpParser\Node;
use Rector\Core\Rector\AbstractRector;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down
2 changes: 1 addition & 1 deletion src/Drupal8/Rector/Deprecation/EntityCreateRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace DrupalRector\Drupal8\Rector\Deprecation;

use PhpParser\Node;
use Rector\Core\Rector\AbstractRector;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace DrupalRector\Drupal8\Rector\Deprecation;

use PhpParser\Node;
use Rector\Core\Rector\AbstractRector;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand Down
4 changes: 2 additions & 2 deletions src/Drupal8/Rector/Deprecation/EntityInterfaceLinkRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

use DrupalRector\Services\AddCommentService;
use PhpParser\Node;
use Rector\Core\Rector\AbstractRector;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -24,7 +24,7 @@
final class EntityInterfaceLinkRector extends AbstractRector
{
/**
* @var \DrupalRector\Services\AddCommentService
* @var AddCommentService
*/
private AddCommentService $commentService;

Expand Down
14 changes: 10 additions & 4 deletions src/Drupal8/Rector/Deprecation/EntityLoadRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
use DrupalRector\Drupal8\Rector\ValueObject\EntityLoadConfiguration;
use DrupalRector\Services\AddCommentService;
use PhpParser\Node;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -32,7 +32,7 @@ final class EntityLoadRector extends AbstractRector implements ConfigurableRecto
protected array $entityTypes;

/**
* @var \DrupalRector\Services\AddCommentService
* @var AddCommentService
*/
private AddCommentService $commentService;

Expand Down Expand Up @@ -169,9 +169,15 @@ public function refactor(Node $node): ?Node

$resetCache_method_name = new Node\Identifier('resetCache');

if (!class_exists('\PhpParser\Node\ArrayItem')) {
$arrayItems = [new Node\Expr\ArrayItem($entity_id->value)];
} else {
$arrayItems = [new \PhpParser\Node\ArrayItem($entity_id->value)];
}

$reset_args = [
// This creates a new argument that wraps the entity ID in an array.
new Node\Arg(new Node\Expr\Array_([new Node\Expr\ArrayItem($entity_id->value)])),
new Node\Arg(new Node\Expr\Array_($arrayItems)),
];

$entity_load_reset_node = new Node\Expr\MethodCall($getStorage_node,
Expand Down
Loading

0 comments on commit 5b5bc68

Please sign in to comment.