![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/static/framework/Magento/TestFramework/Utility/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\TestFramework\Utility; /** * Search for children classes in list of files. */ class ChildrenClassesSearch { /** * @var ClassNameExtractor */ private $classNameExtractor; /** * ChildrenClassesSearch constructor. */ public function __construct() { $this->classNameExtractor = new ClassNameExtractor(); } /** * Get list of classes name which are subclasses of mentioned class. * * @param array $fileList * @param string $parent * @param bool $asDataSet * * @return array * @throws \ReflectionException */ public function getClassesWhichAreChildrenOf(array $fileList, string $parent, bool $asDataSet = true): array { $found = []; foreach ($fileList as $file) { $name = $asDataSet ? $file[0] : $file; $class = $this->classNameExtractor->getNameWithNamespace(file_get_contents($name)); if ($class) { $classReflection = new \ReflectionClass($class); if ($classReflection->isSubclassOf($parent)) { $found[] = $class; } } } return $found; } }