Viewing file: TypeName.php (2.43 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php declare(strict_types=1); /* * This file is part of sebastian/type. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\Type;
use function array_pop; use function explode; use function implode; use function substr; use ReflectionClass;
final class TypeName { /** * @var ?string */ private $namespaceName;
/** * @var string */ private $simpleName;
public static function fromQualifiedName(string $fullClassName): self { if ($fullClassName[0] === '\\') { $fullClassName = substr($fullClassName, 1); }
$classNameParts = explode('\\', $fullClassName);
$simpleName = array_pop($classNameParts); $namespaceName = implode('\\', $classNameParts);
return new self($namespaceName, $simpleName); }
public static function fromReflection(ReflectionClass $type): self { return new self( $type->getNamespaceName(), $type->getShortName() ); }
public function __construct(?string $namespaceName, string $simpleName) { if ($namespaceName === '') { $namespaceName = null; }
$this->namespaceName = $namespaceName; $this->simpleName = $simpleName; }
public function namespaceName(): ?string { return $this->namespaceName; }
public function simpleName(): string { return $this->simpleName; }
public function qualifiedName(): string { return $this->namespaceName === null ? $this->simpleName : $this->namespaceName . '\\' . $this->simpleName; }
/** * @deprecated Use namespaceName() instead * * @codeCoverageIgnore */ public function getNamespaceName(): ?string { return $this->namespaceName(); }
/** * @deprecated Use simpleName() instead * * @codeCoverageIgnore */ public function getSimpleName(): string { return $this->simpleName(); }
/** * @deprecated Use qualifiedName() instead * * @codeCoverageIgnore */ public function getQualifiedName(): string { return $this->qualifiedName(); }
public function isNamespaced(): bool { return $this->namespaceName !== null; } }
|