for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace Reflection\ClassUseStatements;
/**
* Class UseStatement
* @package UsesReflection
*/
class UseStatement {
* @var string
private $fullClassName;
private $className;
private $alias;
* UseStatement constructor.
* @param string $fullClassName
* @param string $alias
public function __construct(string $fullClassName, string $alias = '') {
$this->setFullClassName($fullClassName)
->setAlias($alias);
}
* @return string
public function getFullClassName(): string {
return $this->fullClassName;
* @return UseStatement
public function setFullClassName(string $fullClassName): UseStatement {
if ($fullClassName[0] !== '\\') {
$fullClassName = "\\$fullClassName";
$this->fullClassName = $fullClassName;
$paths = explode('\\', $fullClassName);
$this->className = end($paths);
return $this;
public function getClassName(): string {
return $this->className;
public function getAlias(): string {
return $this->alias;
public function setAlias(string $alias): UseStatement {
$this->alias = $alias;
* @return array
public function toArray() {
return [
$this->getFullClassName(),
$this->getClassName(),
$this->getAlias()
];