PHP 8.2.31
Preview: CommandFromReflectionFactory.php Size: 1.13 KB
//opt/cpanel/ea-wappspector/vendor/rector/rector/vendor/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php

<?php

declare (strict_types=1);
namespace RectorPrefix202411\Symplify\EasyParallel\Reflection;

use ReflectionClass;
use ReflectionMethod;
use RectorPrefix202411\Symfony\Component\Console\Command\Command;
use RectorPrefix202411\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException;
/**
 * @api
 */
final class CommandFromReflectionFactory
{
    /**
     * @param class-string<Command> $className
     */
    public function create(string $className) : Command
    {
        $commandReflectionClass = new ReflectionClass($className);
        $command = $commandReflectionClass->newInstanceWithoutConstructor();
        $parentClassReflection = $commandReflectionClass->getParentClass();
        if (!$parentClassReflection instanceof ReflectionClass) {
            throw new ParallelShouldNotHappenException();
        }
        $parentConstructorReflectionMethod = $parentClassReflection->getConstructor();
        if (!$parentConstructorReflectionMethod instanceof ReflectionMethod) {
            throw new ParallelShouldNotHappenException();
        }
        $parentConstructorReflectionMethod->invoke($command);
        return $command;
    }
}

Directory Contents

Dirs: 0 × Files: 1

Name Size Perms Modified Actions
1.13 KB lrw-r--r-- 2024-11-08 13:59:10
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).