Skip to content

Commit 6399748

Browse files
committed
wip
1 parent 97ceda7 commit 6399748

File tree

5 files changed

+58
-0
lines changed

5 files changed

+58
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace Tempest\Upgrade\Tempest2;
4+
5+
use PhpParser\Node;
6+
use PhpParser\NodeVisitor;
7+
use Rector\Rector\AbstractRector;
8+
9+
final class RemoveUriImportRector extends AbstractRector
10+
{
11+
public function getNodeTypes(): array
12+
{
13+
return [
14+
Node\UseItem::class,
15+
];
16+
}
17+
18+
public function refactor(Node $node): ?int
19+
{
20+
if (! ($node instanceof Node\UseItem)) {
21+
return null;
22+
}
23+
24+
if ($node->name->toString() === 'Tempest\uri') {
25+
return NodeVisitor::REMOVE_NODE;
26+
}
27+
28+
return null;
29+
}
30+
}

packages/upgrade/src/tempest2.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
<?php
22

33
use Rector\Config\RectorConfig;
4+
use Rector\Renaming\Rector\FuncCall\RenameFunctionRector;
45
use Rector\Renaming\Rector\Name\RenameClassRector;
56
use Rector\Renaming\Rector\PropertyFetch\RenamePropertyRector;
67
use Rector\Renaming\ValueObject\RenameProperty;
78
use Tempest\Upgrade\Tempest2\MigrationRector;
89
use Tempest\Upgrade\Tempest2\RemoveDatabaseMigrationImportRector;
910
use Tempest\Upgrade\Tempest2\RemoveIdImportRector;
11+
use Tempest\Upgrade\Tempest2\RemoveUriImportRector;
1012

1113
return static function (RectorConfig $config): void {
1214
$config->importNames();
1315
$config->importShortClasses();
1416

1517
$config->rule(MigrationRector::class);
1618

19+
$config->ruleWithConfiguration(RenameFunctionRector::class, [
20+
'Tempest\uri' => 'Tempest\Router\uri',
21+
]);
22+
1723
$config->ruleWithConfiguration(RenameClassRector::class, [
1824
'Tempest\Database\Id' => 'Tempest\Database\PrimaryKey',
1925
'Tempest\CommandBus\AsyncCommand' => 'Tempest\CommandBus\Async',
@@ -65,4 +71,5 @@
6571

6672
$config->rule(RemoveIdImportRector::class);
6773
$config->rule(RemoveDatabaseMigrationImportRector::class);
74+
$config->rule(RemoveUriImportRector::class);
6875
};

packages/upgrade/tests/RectorTester.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ private function getActual(string $fixturePath): string
7474
isDryRun: true,
7575
shouldClearCache: true,
7676
showDiffs: true,
77+
7778
);
7879

7980
$processer = $container->make(ApplicationFileProcessor::class);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
use function Tempest\uri;
4+
5+
final class UriNamespaceChange
6+
{
7+
public function __invoke()
8+
{
9+
return uri(self::class);
10+
}
11+
}

packages/upgrade/tests/Tempest2/Tempest2RectorTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,13 @@ public function test_database_id_rename(): void
3838
->assertNotContains('Id')
3939
->assertNotContains('Tempest\Database\Id');
4040
}
41+
42+
public function test_uri_namespace_change(): void
43+
{
44+
$this->rector
45+
->runFixture(__DIR__ . '/Fixtures/UriNamespaceChange.input.php')
46+
->assertContains('use function Tempest\Router\uri;')
47+
->assertNotContains('use function Tempest\uri;');
48+
49+
}
4150
}

0 commit comments

Comments
 (0)