ist es möglich, Composer oder Git-Befehle aus einem Controller in Laravel ausführen? Etwas wie das:Laravel run Composer/Git Befehle in Controller
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');
}
}
}
Wenn ich es wie oben gezeigt mache, bekomme ich keine Nachricht. Ich denke, das Problem ist, dass diese Befehle im Root-Verzeichnis des Projekts und nicht in einem Unterordner ausgeführt werden müssen.
Und gibt es eine PHP-Funktion, um ein komplettes Shell-Skript und nicht nur einzelne Befehle auszuführen?
Ich habe dies getestet:
echo shell_exec('php ' . __DIR__ . '/../shell.php');
// shell.php is in projects root directory
Das Skript ausgeführt wird, aber nicht im Stammverzeichnis.
Danke!
Alles funktioniert in meinem lokalen Umfeld in Ordnung. Aber ich habe keinen Erfolg in meiner Laravel-Installation. Das Ergebnis ist NULL.Ich habe auch versucht, andere Befehle als composer/git auszuführen (z. B. php artisan make: controller XyzController), aber ohne Erfolg ... – Brotzka
Ich hatte auch gemischte Ergebnisse. Einige Befehle funktionieren perfekt, während andere '' 'null''' zurückgeben. Könnte mit der Art der Ausgabe zusammenhängen, die durch den Befehl oder PHP-Zeitablauf erzeugt wird ... –
Kennen Sie eine Möglichkeit, die Aktionen zu protokollieren? Es ist schwierig zu überprüfen, ob ein Befehl erfolgreich war oder nicht, wenn es keine Ausgabe gibt ^^ – Brotzka