В продолжение разговора о консольном приложении, предлагаю вот такой базовый класс команды для вашего проекта.
https://gist.github.com/vudaltsov/22c9498e891669d36bbbd366cc3705ef
Некоторые пояснения:
- благодаря пустому конструктору при создании подкласса PhpStorm не дублирует необязательные и ненужные аргументы оригинального конструктора
-
- в
- методы
- зафиксированы все корректные типы, в частности, execute(): int.
Опробовано в продакшне 😂, пользуйтесь.
https://gist.github.com/vudaltsov/22c9498e891669d36bbbd366cc3705ef
Некоторые пояснения:
- благодаря пустому конструктору при создании подкласса PhpStorm не дублирует необязательные и ненужные аргументы оригинального конструктора
Symfony\Component\Console\Command\Command
;-
abstract public static function name()
форсирует статическое имя, речь о котором шла в статье постом выше;- в
getDefaultName
добавлен префикс, чтобы исключить коллизии с вендорными командами;- методы
doExecute
и doInteract
сразу получают удобный хэлпер SymfonyStyle
, о котором я когда-то тут рассказывал;- зафиксированы все корректные типы, в частности, execute(): int.
Опробовано в продакшне 😂, пользуйтесь.