CakePHP 4命令行上的自定义shell脚本

dnph8jn4  于 2022-11-24  发布在  PHP
关注(0)|答案(1)|浏览(201)

有没有办法直接在CAkePHP4的命令类上运行shell命令?我想这样。

class SyncProjectsCoursesCommand extends Command
{
    public function execute(Arguments $args, ConsoleIo $io): int
    {

        // Custom MySQL shell command
        $this->run("mysql -u qstimuser --password=$DPASS --database=tims2 --host=10.10.9.60 --execute='...'");
      
       // Or customer .sh file on Linux bin
       $this->run("custom-shell-command.sh") 

        return static::CODE_SUCCESS;
    }
}

?>
iqih9akk

iqih9akk1#

Command::run()用于运行当前命令,您不能出于任何其他目的自行调用它,当您从CLI运行该命令时,将调用它。
没有特定的方法来运行外部可执行文件,但CakePHP仍然只是PHP,所以您可以使用原生PHP命令。长话短说,使用PHP的原生方法,如exec()system()passthru()等(不要忘记对传递到CLI的输入进行转义!):

$DPASS = escapeshellarg($DPASS);
$result = exec("mysql -u qstimuser --password={$DPASS} --database=tims2 --host=10.10.9.60 --execute='...'");

另请参阅


相关问题