Skip to content

Commit

Permalink
[TASK] Replace UseUse with UseItem
Browse files Browse the repository at this point in the history
Since nikic/php-parser version 5 some classes got renamed. This change aligns the extender with the new names of the classes.
  • Loading branch information
garbast committed Nov 23, 2024
1 parent 95389c7 commit e8d8874
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 17 deletions.
1 change: 0 additions & 1 deletion Classes/Composer/Generator/PropertyGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\Namespace_;
use PhpParser\Node\Stmt\Property;
use PhpParser\Node\Stmt\UseUse;

class PropertyGenerator implements GeneratorInterface
{
Expand Down
4 changes: 2 additions & 2 deletions Classes/Composer/Generator/UseGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
use PhpParser\Node;
use PhpParser\Node\Stmt\Namespace_;
use PhpParser\Node\Stmt\Use_;
use PhpParser\Node\Stmt\UseUse;
use PhpParser\Node\UseItem;

class UseGenerator implements GeneratorInterface
{
Expand All @@ -42,7 +42,7 @@ public function generate(array $statements, array $fileSegments): array

/**
* @param FileSegments[] $fileSegments
* @return UseUse[]
* @return UseItem[]
*/
protected function getUniqueUses(array $fileSegments): array
{
Expand Down
12 changes: 6 additions & 6 deletions Classes/Parser/FileSegments.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Property;
use PhpParser\Node\Stmt\TraitUse;
use PhpParser\Node\Stmt\UseUse;
use PhpParser\Node\UseItem;
use PhpParser\Node;

class FileSegments implements \JsonSerializable
Expand All @@ -40,7 +40,7 @@ class FileSegments implements \JsonSerializable
protected ?Name $namespace = null;

/**
* @var UseUse[]
* @var UseItem[]
*/
protected array $uses = [];

Expand Down Expand Up @@ -127,24 +127,24 @@ public function setNamespace(?Name $namespace): void
}

/**
* @return UseUse[]
* @return UseItem[]
*/
public function getUses(): array
{
return $this->uses;
}

/**
* @param UseUse[] $uses
* @param UseItem[] $uses
*/
public function setUses(array $uses): void
{
$this->uses = $uses;
}

public function addUseUse(UseUse $useUse): void
public function addUse(UseItem $use): void
{
$this->uses[] = $useUse;
$this->uses[] = $use;
}

public function getClass(): ?Class_
Expand Down
6 changes: 3 additions & 3 deletions Classes/Parser/Visitor/UseVisitor.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
namespace Evoweb\Extender\Parser\Visitor;

use PhpParser\Node;
use PhpParser\Node\Stmt\UseUse;
use PhpParser\Node\UseItem;

class UseVisitor extends AbstractVisitor
{
Expand All @@ -25,8 +25,8 @@ class UseVisitor extends AbstractVisitor
*/
public function enterNode(Node $node): int|null|Node|array
{
if ($node instanceof UseUse) {
$this->fileSegment->addUseUse($node);
if ($node instanceof UseItem) {
$this->fileSegment->addUse($node);
}
return $node;
}
Expand Down
12 changes: 7 additions & 5 deletions Tests/Functional/Composer/ClassComposerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
use Evoweb\Extender\Parser\FileSegments;
use Evoweb\Extender\Tests\Functional\AbstractTestBase;
use PhpParser\Node;
use PhpParser\Node\Name;
use PhpParser\Node\Stmt;
use PhpParser\Node\UseItem;
use PHPUnit\Framework\Attributes\Test;
use PhpParser\Node\PropertyItem;
use PhpParser\Node\Stmt\Property;
Expand All @@ -38,10 +40,10 @@ public function composeMergedFileCode(): void
$fileSegments->setFilePath($basePath);
$fileSegments->setBaseClass(true);
$fileSegments->setCode($code);
$fileSegments->setNamespace(new Node\Name('EvowebTests\BaseExtension\Domain\Model'));
$fileSegments->addUseUse(new Stmt\UseUse(new Node\Name('Evoweb\Domain\Model\Test')));
$fileSegments->setNamespace(new Name('EvowebTests\BaseExtension\Domain\Model'));
$fileSegments->addUse(new UseItem(new Name('Evoweb\Domain\Model\Test')));
$fileSegments->setClass(new Stmt\Class_('ComposeMergedFileCode'));
$fileSegments->addTrait(new Stmt\TraitUse([new Node\Name('Evoweb\TestTrait')]));
$fileSegments->addTrait(new Stmt\TraitUse([new Name('Evoweb\TestTrait')]));
// @phpstan-ignore argument.type
$fileSegments->addProperty(new Property(2, [new PropertyItem('testProperty')]));
$fileSegments->setConstructor(new Stmt\ClassMethod('__construct'));
Expand Down Expand Up @@ -74,13 +76,13 @@ public function addFileStatement(
}
};

$namespaceName = new Node\Name('EvowebTests\BaseExtension\Domain\Model');
$namespaceName = new Name('EvowebTests\BaseExtension\Domain\Model');

$fileSegments = new FileSegments();
$fileSegments->setBaseClass(true);
$fileSegments->setNamespace($namespaceName);

$expected = [new Node\Stmt\Namespace_($namespaceName)];
$expected = [new Stmt\Namespace_($namespaceName)];

$actual = $subject->addFileStatement([], [$fileSegments], NamespaceGenerator::class);

Expand Down

0 comments on commit e8d8874

Please sign in to comment.