Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions config/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
declare(strict_types=1);

use Fsylum\RectorWordPress\Rules\FuncCall\ParameterAdderRector;
use Fsylum\RectorWordPress\Rules\MethodCall\ParameterAdderRector as MethodParameterAdderRector;
use Fsylum\RectorWordPress\Rules\FuncCall\ParameterPrependerRector;
use Fsylum\RectorWordPress\ValueObject\FunctionParameterAdder;
use Fsylum\RectorWordPress\ValueObject\FunctionParameterPrepender;
use Fsylum\RectorWordPress\ValueObject\MethodParameterAdder;
use Rector\Config\RectorConfig;
use Rector\Removing\Rector\FuncCall\RemoveFuncCallArgRector;
use Rector\Removing\ValueObject\RemoveFuncCallArg;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\ValueObject\MethodCallRename;

return static function (RectorConfig $rectorConfig): void {
/*
Expand All @@ -22,6 +26,10 @@
* Since `RenameFunctionRector` is parsed earlier, it will rename the all the configured functions and
* `ParameterAdderRector` will receive nodes with functions already renamed, so it can never be run successfully.
*/
$rectorConfig->ruleWithConfiguration(MethodParameterAdderRector::class, [
new MethodParameterAdder('_imaginary_class', '_imaginary_method_that_should_not_exists', 0, 'foo'),
]);

$rectorConfig->ruleWithConfiguration(RemoveFuncCallArgRector::class, [
new RemoveFuncCallArg('_imaginary_function_that_should_not_exists', 0),
]);
Expand All @@ -33,4 +41,8 @@
$rectorConfig->ruleWithConfiguration(ParameterPrependerRector::class, [
new FunctionParameterPrepender('_imaginary_function_that_should_not_exists', 'foo'),
]);

$rectorConfig->ruleWithConfiguration(RenameMethodRector::class, [
new MethodCallRename('_imaginary_class', '_old_imaginary_method_that_should_not_exists', '_new_imaginary_method_that_should_not_exists'),
]);
};
9 changes: 9 additions & 0 deletions config/sets/level/up-to-wp-6.7.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

use Fsylum\RectorWordPress\Set\WordPressLevelSetList;
use Fsylum\RectorWordPress\Set\WordPressSetList;
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([WordPressSetList::WP_6_7, WordPressLevelSetList::UP_TO_WP_6_6]);
};
9 changes: 9 additions & 0 deletions config/sets/level/up-to-wp-6.8.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

use Fsylum\RectorWordPress\Set\WordPressLevelSetList;
use Fsylum\RectorWordPress\Set\WordPressSetList;
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([WordPressSetList::WP_6_8, WordPressLevelSetList::UP_TO_WP_6_7]);
};
46 changes: 46 additions & 0 deletions config/sets/wp-6.7.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?php

use Fsylum\RectorWordPress\Rules\MethodCall\RemoveMethodCallRector;
use Rector\Config\RectorConfig;
use Rector\Removing\Rector\FuncCall\RemoveFuncCallRector;
use Rector\Renaming\Rector\FuncCall\RenameFunctionRector;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\ValueObject\MethodCallRename;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->import(__DIR__ . '/../config.php');

$rectorConfig->ruleWithConfiguration(RenameFunctionRector::class, [
'wp_get_global_styles_custom_css' => 'wp_get_global_stylesheet',
'wp_enqueue_global_styles_custom_css' => 'wp_enqueue_global_styles',
'current_user_can_for_blog' => 'current_user_can_for_site',
]);

$rectorConfig->ruleWithConfiguration(RemoveFuncCallRector::class, [
'wp_init_targeted_link_rel_filters',
'wp_remove_targeted_link_rel_filters',
]);

$rectorConfig->ruleWithConfiguration(RemoveMethodCallRector::class, [
'print_client_interactivity_data' => 'WP_Interactivity_API',
'register_script_modules' => 'WP_Interactivity_API',
]);

$rectorConfig->ruleWithConfiguration(RenameMethodRector::class, [
new MethodCallRename('WP_Interactivity_API', 'print_router_loading_and_screen_reader_markup', 'print_router_markup'),
]);

/*
* TODO: these are not handled currently
*
* FUNCTIONS
* - wp_simplepie_autoload
* - wp_create_block_style_variation_instance_name
* - wp_targeted_link_rel
* - wp_targeted_link_rel_callback
*
* METHODS
* - WP_Sitemaps::redirect_sitemapxml
* - WP_Theme_JSON::get_custom_css
*/
};
24 changes: 24 additions & 0 deletions config/sets/wp-6.8.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

use Rector\Arguments\Rector\FuncCall\FunctionArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ReplaceFuncCallArgumentDefaultValue;
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->import(__DIR__ . '/../config.php');

$rectorConfig->ruleWithConfiguration(FunctionArgumentDefaultValueReplacerRector::class, [
new ReplaceFuncCallArgumentDefaultValue('add_action', 0, 'setted_transient', 'set_transient'),
new ReplaceFuncCallArgumentDefaultValue('add_action', 0, 'setted_site_transient', 'set_site_transient'),
]);

/*
* TODO: these are not handled currently
*
* FUNCTIONS
* - wp_add_editor_classic_theme_styles
*
* PROPERTIES
* - WP_HTML_Processor_State::$context_node
*/
};
2 changes: 2 additions & 0 deletions src/Set/WordPressLevelSetList.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,6 @@ final class WordPressLevelSetList implements SetListInterface
public const UP_TO_WP_6_4 = __DIR__ . '/../../config/sets/level/up-to-wp-6.4.php';
public const UP_TO_WP_6_5 = __DIR__ . '/../../config/sets/level/up-to-wp-6.5.php';
public const UP_TO_WP_6_6 = __DIR__ . '/../../config/sets/level/up-to-wp-6.6.php';
public const UP_TO_WP_6_7 = __DIR__ . '/../../config/sets/level/up-to-wp-6.7.php';
public const UP_TO_WP_6_8 = __DIR__ . '/../../config/sets/level/up-to-wp-6.8.php';
}
2 changes: 2 additions & 0 deletions src/Set/WordPressSetList.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,6 @@ final class WordPressSetList implements SetListInterface
public const WP_6_4 = __DIR__ . '/../../config/sets/wp-6.4.php';
public const WP_6_5 = __DIR__ . '/../../config/sets/wp-6.5.php';
public const WP_6_6 = __DIR__ . '/../../config/sets/wp-6.6.php';
public const WP_6_7 = __DIR__ . '/../../config/sets/wp-6.7.php';
public const WP_6_8 = __DIR__ . '/../../config/sets/wp-6.8.php';
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Fsylum\RectorWordPress\Tests\Rector\Sets\Level\UpToWp66;
namespace Fsylum\RectorWordPress\Tests\Rector\Sets\Level\UpToWp68;

use Iterator;
use PHPUnit\Framework\Attributes\DataProvider;
Expand All @@ -9,7 +9,7 @@
/**
* @internal
*/
final class UpToWp66Test extends AbstractRectorTestCase
final class UpToWp68Test extends AbstractRectorTestCase
{
#[DataProvider('provideData')]
public function test(string $filePath): void
Expand All @@ -24,6 +24,6 @@ public static function provideData(): Iterator

public function provideConfigFilePath(): string
{
return __DIR__ . '/../../../../../config/sets/level/up-to-wp-6.6.php';
return __DIR__ . '/../../../../../config/sets/level/up-to-wp-6.8.php';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,26 @@ $class2->create_attachment_object('foo', 1);
$foo = wp_interactivity_process_directives_of_interactive_blocks($bar);
$foo = wp_render_elements_support($bar);

// 6.7
wp_get_global_styles_custom_css();
wp_enqueue_global_styles_custom_css();

if (current_user_can_for_blog(1, 'edit_posts')) {
echo 'foo';
}

wp_init_targeted_link_rel_filters();
wp_remove_targeted_link_rel_filters();

(new WP_Interactivity_API)->print_client_interactivity_data();
(new WP_Interactivity_API)->register_script_modules();

(new WP_Interactivity_API)->print_router_loading_and_screen_reader_markup();

// 6.8
add_action( 'setted_transient', 'foo', 'bar', 10 );
add_action( 'setted_site_transient', 'foo', 'bar', 10 );

?>
-----
<?php
Expand Down Expand Up @@ -698,4 +718,18 @@ $class2 = new WP_Site_Icon;
$foo = $bar;
$foo = $bar;

// 6.7
wp_get_global_stylesheet();
wp_enqueue_global_styles();

if (current_user_can_for_site(1, 'edit_posts')) {
echo 'foo';
}

(new WP_Interactivity_API)->print_router_markup();

// 6.8
add_action( 'set_transient', 'foo', 'bar', 10 );
add_action( 'set_site_transient', 'foo', 'bar', 10 );

?>
29 changes: 29 additions & 0 deletions tests/Rector/Sets/Wp67/Wp67Test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Fsylum\RectorWordPress\Tests\Rector\Sets\Wp67;

use Iterator;
use PHPUnit\Framework\Attributes\DataProvider;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

/**
* @internal
*/
final class Wp67Test extends AbstractRectorTestCase
{
#[DataProvider('provideData')]
public function test(string $filePath): void
{
$this->doTestFile($filePath);
}

public static function provideData(): Iterator
{
return self::yieldFilesFromDirectory(__DIR__);
}

public function provideConfigFilePath(): string
{
return __DIR__ . '/../../../../config/sets/wp-6.7.php';
}
}
31 changes: 31 additions & 0 deletions tests/Rector/Sets/Wp67/test_fixture.php.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

wp_get_global_styles_custom_css();
wp_enqueue_global_styles_custom_css();

if (current_user_can_for_blog(1, 'edit_posts')) {
echo 'foo';
}

wp_init_targeted_link_rel_filters();
wp_remove_targeted_link_rel_filters();

(new WP_Interactivity_API)->print_client_interactivity_data();
(new WP_Interactivity_API)->register_script_modules();

(new WP_Interactivity_API)->print_router_loading_and_screen_reader_markup();

?>
-----
<?php

wp_get_global_stylesheet();
wp_enqueue_global_styles();

if (current_user_can_for_site(1, 'edit_posts')) {
echo 'foo';
}

(new WP_Interactivity_API)->print_router_markup();

?>
29 changes: 29 additions & 0 deletions tests/Rector/Sets/Wp68/Wp68Test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Fsylum\RectorWordPress\Tests\Rector\Sets\Wp68;

use Iterator;
use PHPUnit\Framework\Attributes\DataProvider;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

/**
* @internal
*/
final class Wp68Test extends AbstractRectorTestCase
{
#[DataProvider('provideData')]
public function test(string $filePath): void
{
$this->doTestFile($filePath);
}

public static function provideData(): Iterator
{
return self::yieldFilesFromDirectory(__DIR__);
}

public function provideConfigFilePath(): string
{
return __DIR__ . '/../../../../config/sets/wp-6.8.php';
}
}
13 changes: 13 additions & 0 deletions tests/Rector/Sets/Wp68/test_fixture.php.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

add_action( 'setted_transient', 'foo', 'bar', 10 );
add_action( 'setted_site_transient', 'foo', 'bar', 10 );

?>
-----
<?php

add_action( 'set_transient', 'foo', 'bar', 10 );
add_action( 'set_site_transient', 'foo', 'bar', 10 );

?>