Вход Регистрация
Файл: vendor/symfony/console/Command/LazyCommand.php
Строк: 302
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentConsoleCommand;

use 
SymfonyComponentConsoleApplication;
use 
SymfonyComponentConsoleCompletionCompletionInput;
use 
SymfonyComponentConsoleCompletionCompletionSuggestions;
use 
SymfonyComponentConsoleHelperHelperSet;
use 
SymfonyComponentConsoleInputInputDefinition;
use 
SymfonyComponentConsoleInputInputInterface;
use 
SymfonyComponentConsoleOutputOutputInterface;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 */
final class LazyCommand extends Command
{
    private 
$command;
    private ?
bool $isEnabled;

    public function 
__construct(string $name, array $aliasesstring $descriptionbool $isHiddenClosure $commandFactory, ?bool $isEnabled true)
    {
        
$this->setName($name)
            ->
setAliases($aliases)
            ->
setHidden($isHidden)
            ->
setDescription($description);

        
$this->command $commandFactory;
        
$this->isEnabled $isEnabled;
    }

    public function 
ignoreValidationErrors(): void
    
{
        
$this->getCommand()->ignoreValidationErrors();
    }

    public function 
setApplication(Application $application null): void
    
{
        if (
$this->command instanceof parent) {
            
$this->command->setApplication($application);
        }

        
parent::setApplication($application);
    }

    public function 
setHelperSet(HelperSet $helperSet): void
    
{
        if (
$this->command instanceof parent) {
            
$this->command->setHelperSet($helperSet);
        }

        
parent::setHelperSet($helperSet);
    }

    public function 
isEnabled(): bool
    
{
        return 
$this->isEnabled ?? $this->getCommand()->isEnabled();
    }

    public function 
run(InputInterface $inputOutputInterface $output): int
    
{
        return 
$this->getCommand()->run($input$output);
    }

    public function 
complete(CompletionInput $inputCompletionSuggestions $suggestions): void
    
{
        
$this->getCommand()->complete($input$suggestions);
    }

    public function 
setCode(callable $code): static
    {
        
$this->getCommand()->setCode($code);

        return 
$this;
    }

    
/**
     * @internal
     */
    
public function mergeApplicationDefinition(bool $mergeArgs true): void
    
{
        
$this->getCommand()->mergeApplicationDefinition($mergeArgs);
    }

    public function 
setDefinition(array|InputDefinition $definition): static
    {
        
$this->getCommand()->setDefinition($definition);

        return 
$this;
    }

    public function 
getDefinition(): InputDefinition
    
{
        return 
$this->getCommand()->getDefinition();
    }

    public function 
getNativeDefinition(): InputDefinition
    
{
        return 
$this->getCommand()->getNativeDefinition();
    }

    public function 
addArgument(string $nameint $mode nullstring $description ''mixed $default null): static
    {
        
$this->getCommand()->addArgument($name$mode$description$default);

        return 
$this;
    }

    public function 
addOption(string $namestring|array $shortcut nullint $mode nullstring $description ''mixed $default null): static
    {
        
$this->getCommand()->addOption($name$shortcut$mode$description$default);

        return 
$this;
    }

    public function 
setProcessTitle(string $title): static
    {
        
$this->getCommand()->setProcessTitle($title);

        return 
$this;
    }

    public function 
setHelp(string $help): static
    {
        
$this->getCommand()->setHelp($help);

        return 
$this;
    }

    public function 
getHelp(): string
    
{
        return 
$this->getCommand()->getHelp();
    }

    public function 
getProcessedHelp(): string
    
{
        return 
$this->getCommand()->getProcessedHelp();
    }

    public function 
getSynopsis(bool $short false): string
    
{
        return 
$this->getCommand()->getSynopsis($short);
    }

    public function 
addUsage(string $usage): static
    {
        
$this->getCommand()->addUsage($usage);

        return 
$this;
    }

    public function 
getUsages(): array
    {
        return 
$this->getCommand()->getUsages();
    }

    public function 
getHelper(string $name): mixed
    
{
        return 
$this->getCommand()->getHelper($name);
    }

    public function 
getCommand(): parent
    
{
        if (!
$this->command instanceof Closure) {
            return 
$this->command;
        }

        
$command $this->command = ($this->command)();
        
$command->setApplication($this->getApplication());

        if (
null !== $this->getHelperSet()) {
            
$command->setHelperSet($this->getHelperSet());
        }

        
$command->setName($this->getName())
            ->
setAliases($this->getAliases())
            ->
setHidden($this->isHidden())
            ->
setDescription($this->getDescription());

        
// Will throw if the command is not correctly initialized.
        
$command->getDefinition();

        return 
$command;
    }
}
Онлайн: 1
Реклама