2016-07-25 123 views
1

如何从symfony函数作为命令行运行命令?从symfony函数作为命令行运行命令

E.g.

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

的[我怎么可以运行控制器的symfony 2运行命令(可能的复制http://stackoverflow.com/questions/10497567/how-can-i-run- symfony-2-run-command-from-controller) – exxecc

回答

3

您可以使用Symfony Process component。该守则将是这个样子:

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

不要工作...... :( 谢谢!:) –