1
0
mirror of https://github.com/nikic/PHP-Parser.git synced 2025-05-12 00:05:20 +02:00

Add Name::getParts(), deprecate Name::$parts

In preparation for switching this to a plain string in
PHP-Parser 5, deprecate direct access to the property and
provide an API that will work on both versions.
This commit is contained in:
Nikita Popov 2023-05-21 21:22:47 +02:00
parent ba788aa98b
commit c9e5a13d68
2 changed files with 15 additions and 1 deletions
lib/PhpParser/Node
test/PhpParser/Node

@ -6,7 +6,10 @@ use PhpParser\NodeAbstract;
class Name extends NodeAbstract
{
/** @var string[] Parts of the name */
/**
* @var string[] Parts of the name
* @deprecated Use getParts() instead
*/
public $parts;
private static $specialClassNames = [
@ -30,6 +33,15 @@ class Name extends NodeAbstract
return ['parts'];
}
/**
* Get parts of name (split by the namespace separator).
*
* @return string[] Parts of name
*/
public function getParts(): array {
return $this->parts;
}
/**
* Gets the first part of the name, i.e. everything before the first namespace separator.
*

@ -19,10 +19,12 @@ class NameTest extends \PHPUnit\Framework\TestCase
$name = new Name('foo');
$this->assertSame('foo', $name->getFirst());
$this->assertSame('foo', $name->getLast());
$this->assertSame(['foo'], $name->getParts());
$name = new Name('foo\bar');
$this->assertSame('foo', $name->getFirst());
$this->assertSame('bar', $name->getLast());
$this->assertSame(['foo', 'bar'], $name->getParts());
}
public function testToString() {