Есть несколько способов сделать это, но поскольку вы используете такую старую версию Laravel, возможно, лучшим для вашего случая будет тот, который не потребует переписывания, когда вы наконец перейдете на более новую версию. Возможно, вы пробовали ванильные методы PHP system
, shell_exec
и passthru
?
system
вернут только последнюю строку команды в случае успеха иFALSE при ошибке shell_exec
вернет весь вывод, но без способа получить код состояния выхода passthru
не будетверните любой вывод, вместо этого он выведет все на stdout
. Хотя его можно поместить в переменную, используя методы кэша вывода (например, ob_start
и ob_get_contents
)
В любом случае вы должны вызывать эти методы, используя в качестве аргумента версию CLI команды, которую вы хотитедля запуска:
$output = shell_exec("php artisan command:here");
PS Если у вас случайно есть пользовательский ввод, который вы хотите передать в качестве параметра для команды ремесленника, убедитесь, что вы сначала экранировали его с помощью escapeshellcmd
.