2016-07-25 15 views
1

Wie führen Sie einen Befehl als Befehlszeile aus einer Symfony-Funktion?Führen Sie einen Befehl als Befehlszeile aus einer Symfony-Funktion

z.

C:\SymfonyProject> php app/console my-command --option=my-option 

Ich möchte diesen Befehl von einer Funktion ausführen. Mit diesem Befehl werden Dateien aus einer Datenbank exportiert und diese Dateien im Ordner "app/Resource/translations" von Symfony Project abgelegt.

I.e.

public function exportFiles(){ // I want to run command here. } 

Vielen Dank! :)

+0

Mögliches Duplikat [Wie kann ich symfony 2 Fahrbefehl von der Steuerung ausgeführt] (http://stackoverflow.com/questions/10497567/how-can-i-run- symfony-2-run-command-from-controller) – exxecc

Antwort

3

Sie könnten die Symfony Process component dafür verwenden. Der Code würde wie folgt aussehen:

private function process(OutputInterface $output) 
{ 
    $cmd = 'php app/console my-command --option=my-option'; 

    $process = new Process($cmd); 
    $process->setTimeout(60); 

    $process->run(
     function ($type, $buffer) use ($output) { 
      $output->write((Process::ERR === $type) ? 'ERR:' . $buffer : $buffer); 
     } 
); 
+0

$ output wo ist definiert? Es kann eine einfache Datei sein? –

+0

Ah, das habe ich beim Kopieren vergessen. $ output ist in diesem Fall ein OutputInterface (führte diesen Code in einem anderen Symfony-Befehl aus). Aber natürlich könnten Sie sich einfach in eine Datei einloggen oder was auch immer Sie in diesem Fall tun möchten. – muffe

+0

Funktioniert nicht ... :( Danke trotzdem! :) –

Verwandte Themen