是否可以在Laravel的控制器中運行composer或git命令?類似的東西:Laravel在控制器內運行作曲家/ git命令
class TestController extends Controller
{
//
public function shell(Request $request){
if($request->isMethod('post')){
$data['output'] = shell_exec('composer update');
// or some git commands
return view('tests.shell', $data);
} else {
return view('tests.shell');
}
}
}
如果按照上面顯示的方式,我不會收到任何消息。我認爲,問題是,這些命令必須在項目根目錄中運行,而不是在子文件夾中運行。
是否有一個PHP函數來運行一個完整的shell腳本,而不僅僅是單個命令?
我測試了這一點:
echo shell_exec('php ' . __DIR__ . '/../shell.php');
// shell.php is in projects root directory
執行腳本,而不是在根目錄下。
謝謝!
一切都在我的本地環境中正常工作。但我的laravel安裝沒有成功。結果是NULL。我也試圖執行比composer/git(例如php artisan make:controller XyzController)的其他命令,但沒有成功... – Brotzka
我也有混合的結果。一些命令完美工作,而其他命令則返回'''null'''。可能與命令生成的輸出類型有關或PHP超時... –
您知道一種記錄操作的方法嗎?當沒有輸出時,很難檢查命令是否成功^^ – Brotzka