File tree Expand file tree Collapse file tree 5 files changed +76
-0
lines changed
Expand file tree Collapse file tree 5 files changed +76
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Upgrade \Tempest2 ;
4+
5+ use PhpParser \Node ;
6+ use Rector \Rector \AbstractRector ;
7+
8+ final class UpdateUriImportsRector extends AbstractRector
9+ {
10+ public function getNodeTypes (): array
11+ {
12+ return [
13+ Node \UseItem::class,
14+ ];
15+ }
16+
17+ public function refactor (Node $ node ): ?int
18+ {
19+ if (! ($ node instanceof Node \UseItem)) {
20+ return null ;
21+ }
22+
23+ if ($ node ->name ->toString () === 'Tempest\uri ' ) {
24+ $ node ->name = new Node \Name ('Tempest\Router\uri ' );
25+ }
26+
27+ if ($ node ->name ->toString () === 'Tempest\is_current_uri ' ) {
28+ $ node ->name = new Node \Name ('Tempest\Router\is_current_uri ' );
29+ }
30+
31+ return null ;
32+ }
33+ }
Original file line number Diff line number Diff line change 11<?php
22
33use Rector \Config \RectorConfig ;
4+ use Rector \Renaming \Rector \FuncCall \RenameFunctionRector ;
45use Rector \Renaming \Rector \Name \RenameClassRector ;
56use Rector \Renaming \Rector \PropertyFetch \RenamePropertyRector ;
67use Rector \Renaming \ValueObject \RenameProperty ;
78use Tempest \Upgrade \Tempest2 \MigrationRector ;
89use Tempest \Upgrade \Tempest2 \RemoveDatabaseMigrationImportRector ;
910use Tempest \Upgrade \Tempest2 \RemoveIdImportRector ;
11+ use Tempest \Upgrade \Tempest2 \UpdateUriImportsRector ;
1012
1113return static function (RectorConfig $ config ): void {
1214 $ config ->importNames ();
1315 $ config ->importShortClasses ();
1416
1517 $ config ->rule (MigrationRector::class);
18+ $ config ->rule (UpdateUriImportsRector::class);
1619
1720 $ config ->ruleWithConfiguration (RenameClassRector::class, [
1821 'Tempest\Database\Id ' => 'Tempest\Database\PrimaryKey ' ,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Upgrade \Tests \Tempest2 \Fixtures ;
4+
5+ use function Tempest \is_current_uri ;
6+
7+ final class IsCurrentUriNamespaceChange
8+ {
9+ public function __invoke ()
10+ {
11+ return is_current_uri (self ::class);
12+ }
13+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change @@ -38,4 +38,20 @@ 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+
50+ public function test_is_current_uri_namespace_change (): void
51+ {
52+ $ this ->rector
53+ ->runFixture (__DIR__ . '/Fixtures/IsCurrentUriNamespaceChange.input.php ' )
54+ ->assertContains ('use function Tempest\Router\is_current_uri; ' )
55+ ->assertNotContains ('use function Tempest\is_current_uri; ' );
56+ }
4157}
You can’t perform that action at this time.
0 commit comments