我正在使用两个框架,即Laravel和Symfony用于两个相互链接的应用程序。两者都有bash脚本。
现在,我想在Symfony的bash脚本中编写“ php artisan down”命令,这样,如果我将代码合并到Symfony,则两个应用程序都将关闭。
如何在Symfony框架中编写Laravel artisan命令?
答案 0 :(得分:1)
它应该像其他任何命令一样工作:
#!/bin/bash
php /full/project/path/artisan down
只需写下完整路径。
答案 1 :(得分:1)
//in your symfony project
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
public function processCmd() {
$process = new Process('php /absolute/path/to/project/artisan down');
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
}
Laravel还使用相同的symfony的Console组件! 因此,如果您想在Laravel中运行某些程序,则可以使用上面的相同代码。
示例:
//in your laravel project
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
public function processCmd() {
$process = new Process('supervisorctl stop all');
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
}
PS:
如果要运行多个命令,可以传递一个数组:
$process = new Process(array('ls', '-lsa'));