可以通过PHP框架使用WP-CLI吗?

时间:2017-02-16 作者:Sergey Kondrushenko

我有Zend framework 2应用程序(PHP),我想通过它使用WP-CLI功能。在Zend项目附近,我有WordPress项目,我想通过WP-CLI从Zend维护它主要问题:我是否可以以某种方式直接从Zend项目使用WP-CLI源,而无需通过终端调用命令?例如(在抽象编程语言中):

$command = new WP_CLI::command(\'command_name subcommand_name\', $params, $assoc_params, .....);

$result = $command->execute();
或者WP-CLI只是WordPress项目的一部分,作为扩展其命令的方式,但在我尝试时无法使用它们?

2 个回复
SO网友:swissspidy

这个WP_CLI 类具有runcommand 方法启动新的子进程以运行指定的WP-CLI命令。根据the docs, 您可以这样使用它:

$options = array(
  \'return\'     => true,   // Return \'STDOUT\'; use \'all\' for full object.
  \'parse\'      => \'json\', // Parse captured STDOUT to JSON array.
  \'launch\'     => false,  // Reuse the current process.
  \'exit_error\' => true,   // Halt script execution on error.
);

$plugins = WP_CLI::runcommand( \'plugin list --format=json\', $options );

SO网友:Mark Kaplun

这可能是不明智的。WP-CLI是作为命令行实用程序开发的,可能不会在版本之间维护内部结构。

由于在任何情况下都必须以root身份运行,因此通过shell执行WP-CLI命令(也称为exec 或调用任何API。