Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/vendor/sebastian/type/src/ |
<?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;
}
}