@roman9966

Как вызвать метод класса который передается как опция в artisan команде?

В Lumen хочу сделать команду, которая будет выполнять парсинг данных и заносить их в базу, опцией этой команды будет имя класса, который будет выполнять парсинг, т.е. что-то типа такого
php artisan parse --service=SomeParser

Могу ли я в методе который вызывается при выполнении команды сделать так:
$this->getLaravel()->call($this->arguments('service') . '@parse')


Метод parse будет забирать данные и ложить их в базу. Все классы парсеров реализуют общий интерфейс, в котором определен метод parse

Может есть ещё какие-нибудь варианты?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@roman9966 Автор вопроса
При таком варианте нужно указывать имя класса с нэймспейсом. Этот вариант хоть и работает, но выглядит как костыль. Лучше было бы в команде вызывать какой-нибудь класс-фабрику и туда передавать имя парсера, что в принципе я и сделал.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Во-первых, хватит юзать Lumen. Он годится максимум для сайта-визитки с отзывами.
Во-вторых, так вы пробывали работоспособность указанного кода, или нет?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы