Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
vendor
/
mockery
/
mockery
/
library
/
Mockery
/
Generator
:
DefinedTargetClass.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Mockery (https://docs.mockery.io/) * * @copyright https://github.com/mockery/mockery/blob/HEAD/COPYRIGHT.md * @license https://github.com/mockery/mockery/blob/HEAD/LICENSE BSD 3-Clause License * @link https://github.com/mockery/mockery for the canonical source repository */ namespace Mockery\Generator; use ReflectionAttribute; use ReflectionClass; use function array_map; use function array_unique; use const PHP_VERSION_ID; class DefinedTargetClass implements TargetClassInterface { private $rfc; private $name; public function __construct(ReflectionClass $rfc, $alias = null) { $this->rfc = $rfc; $this->name = $alias === null ? $rfc->getName() : $alias; } public static function factory($name, $alias = null) { return new self(new ReflectionClass($name), $alias); } public function getAttributes() { if (\PHP_VERSION_ID < 80000) { return []; } return array_unique( array_merge( ['\AllowDynamicProperties'], array_map( static function (ReflectionAttribute $attribute): string { return '\\' . $attribute->getName(); }, $this->rfc->getAttributes() ) ) ); } public function getName() { return $this->name; } public function isAbstract() { return $this->rfc->isAbstract(); } public function isFinal() { return $this->rfc->isFinal(); } public function getMethods() { return array_map(function ($method) { return new Method($method); }, $this->rfc->getMethods()); } public function getInterfaces() { $class = __CLASS__; return array_map(function ($interface) use ($class) { return new $class($interface); }, $this->rfc->getInterfaces()); } public function __toString() { return $this->getName(); } public function getNamespaceName() { return $this->rfc->getNamespaceName(); } public function inNamespace() { return $this->rfc->inNamespace(); } public function getShortName() { return $this->rfc->getShortName(); } public function implementsInterface($interface) { return $this->rfc->implementsInterface($interface); } public function hasInternalAncestor() { if ($this->rfc->isInternal()) { return true; } $child = $this->rfc; while ($parent = $child->getParentClass()) { if ($parent->isInternal()) { return true; } $child = $parent; } return false; } }