我想获得一个工匠命令来执行时运行bash脚本。
所以我使用以下
创建了一个工匠命令 php artisan make:command backupList --command=backup:list
这是backupList.php
<?php
namespace App\Console\Commands;
require_once __DIR__ . '/vendor/autoload.php';
use Illuminate\Console\Command;
class backupDB extends Command
{
protected $signature = 'backup:list {name}';
protected $description = 'Database backup tool';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$this->exec('ls -la');
}
}
在handle()中,exec和shell_exec似乎不起作用,有没有其他方法可以让artisan命令在shell中运行bash?
答案 0 :(得分:2)
Laravel使用Symphony作为核心。您可以使用已经实现到Laravel的Symphony组件。对于这种情况,您可以使用这个
答案 1 :(得分:2)
而不是使用:
$this->exec('ls -la');
您可以执行以下操作:
// execute command
exec("ls -la", $output);
// print output from command
$this->comment( implode( PHP_EOL, $output ) );