我想执行以下命令: composer update
在 laravel 的控制器中,但是这个不起作用。另一方面,该命令composer info
完美运行。
当我在命令提示符下执行composer update
时,我的所有依赖项都在 laravel 供应商文件中正确更新,但当我尝试在控制器中执行composer update
时,没有任何反应。
这是我的代码:
$data['output'] = shell_exec( 'cd '. base_path() .' && composer update' );
dd($data);
这是结果:
array:1 [▼
"output" => null
]
你能帮我理解为什么composer update
在控制器中不起作用吗?我想在没有命令提示符的情况下更新控制器中的依赖项。
谢谢。
来自 php 文档 for shell_exec()
:
The output from the executed command or NULL if an error occurred or the command produces no output.
听起来你最好使用passthru()
,因为这会给你错误的输出。
说到错误,这个想法听起来像是一场灾难的秘诀。