Создание терминальной php команды

У разных фреймворков есть разные терминальные команды, которые взаимодействуют с файлами. Например, в ларавеле php artisan migrate. Как их создают и как они работают? С чего вообще стоит начать поиск?

Это суто для моего скелетона, но мне было бы очень удобно иметь команду, которая брала бы список статусов с класса такого видавведите сюда описание изображения

и апдейтила в базе поле status (типа enum) и добавляла статусы.

Извините, пожалуйста, если плохо обьяснила


Ответы (2 шт):

Автор решения: Ипатьев

Терминальные команды пишутся ровно по тому же принципу что и контроллеры в MVC

Для терминальных команд делают такую же единую точку входа, как и для веба.
Точно так же в ней подключают ядро.
Точно так же пишут подобие роутера, которое по переданному параметру определяет, какой скрипт запускать
И точно так же скрипт обращается к нужным моделям и выполняет их методы.

→ Ссылка
Автор решения: Daniel Protopopov

По сути, консольные команды обрабатывает обработчик (у Laravel это файл artisan, который скорее есть точка входа, нежели сам обработчик), а уже далее он использует параметры команды для дальнейшей работы.

Как вам написал @Ипатьев, если вы напишете migrate после artisan, то migrate - это строка, и с ней можно сделать, к примеру, загрузку и запуск файла/класса или чего ещё на основе строки migrate.

Если напишете migrate down:1 - это тоже можно использовать и извлечь данные из параметров. У Laravel, к примеру, есть помощник, который обрабатывает эти параметры и помещает их в переменные для дальнейшей работы с ними.

→ Ссылка