Метод has класса Application
Метод has класса Application проверяет,
зарегистрирована ли команда с указанным именем
в консольном приложении. Первым параметром
передаётся имя команды в виде строки. Метод
возвращает true, если команда существует,
и false в противном случае.
Синтаксис
public function has(string $name): bool
Пример
Давайте создадим приложение, добавим команду
и проверим её наличие через метод has:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('article');
return Command::SUCCESS;
}
}
?>
Теперь проверим наличие команды в приложении:
<?php
use AppCommandArticleCommand;
use SymfonyComponentConsoleApplication;
$app = new Application();
$app->add(new ArticleCommand());
$res = $app->has('app:article');
var_dump($res);
?>
Результат выполнения кода:
true
Пример
Давайте проверим наличие несуществующей команды:
<?php
use SymfonyComponentConsoleApplication;
$app = new Application();
$res = $app->has('app:unknown');
var_dump($res);
?>
Результат выполнения кода:
false
Пример
Давайте используем метод has для условного
добавления команды только в том случае, если она
ещё не зарегистрирована:
<?php
use AppCommandArticleCommand;
use SymfonyComponentConsoleApplication;
$app = new Application();
if (!$app->has('app:article')) {
$app->add(new ArticleCommand());
}
$res = $app->has('app:article');
var_dump($res);
?>
Результат выполнения кода:
true
Смотрите также
-
класс
SymfonyStyle,
который оформляет вывод в консоли -
класс
Application,
который представляет консольное приложение -
метод
add,
который регистрирует команду в приложении -
метод
get,
который возвращает команду по её имени