Создание терминальной php команды
У разных фреймворков есть разные терминальные команды, которые взаимодействуют с файлами. Например, в ларавеле php artisan migrate. Как их создают и как они работают? С чего вообще стоит начать поиск?
Это суто для моего скелетона, но мне было бы очень удобно иметь команду, которая брала бы список статусов с класса такого вида
и апдейтила в базе поле status (типа enum) и добавляла статусы.
Извините, пожалуйста, если плохо обьяснила
Ответы (2 шт):
Терминальные команды пишутся ровно по тому же принципу что и контроллеры в MVC
Для терминальных команд делают такую же единую точку входа, как и для веба.
Точно так же в ней подключают ядро.
Точно так же пишут подобие роутера, которое по переданному параметру определяет, какой скрипт запускать
И точно так же скрипт обращается к нужным моделям и выполняет их методы.
По сути, консольные команды обрабатывает обработчик (у Laravel это файл artisan, который скорее есть точка входа, нежели сам обработчик), а уже далее он использует параметры команды для дальнейшей работы.
Как вам написал @Ипатьев, если вы напишете migrate после artisan, то migrate - это строка, и с ней можно сделать, к примеру, загрузку и запуск файла/класса или чего ещё на основе строки migrate.
Если напишете migrate down:1 - это тоже можно использовать и извлечь данные из параметров. У Laravel, к примеру, есть помощник, который обрабатывает эти параметры и помещает их в переменные для дальнейшей работы с ними.