2016-07-25 13 views
1

symfony関数からコマンドをどのようにコマンドラインで実行しますか?symfony関数からコマンドラインとしてコマンドを実行

など。

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

このコマンドを関数から実行します。このコマンドは、データベースからファイルをエクスポートし、このファイルをSymfony Projectのapp/Resource/translationsフォルダに置きます。

I.e.

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

ありがとう! :)

+0

の可能性の重複をhttp://stackoverflow.com/questions/10497567/how-can-i-run- symfony-2-run-command-from-controller) – exxecc

答えて

3

これにはSymfony Process componentを使用できます。コードは次のようなものになります([どのように私は、コントローラからsymfonyの2 runコマンドを実行することができます]

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はどこに定義されていますか?シンプルなファイルにすることはできますか? –

+0

ああ、コピー貼り付け中にそれを逃した。この場合、$ outputはOutputInterfaceです(別のSymfonyコマンドでこのコードを実行していました)。しかし、明らかに、ファイルにログすることも、その場合は何をしたいのかを記録することもできます。 – muffe

+0

Do not work ... :( どうもありがとう!) –

関連する問題