Is it possible to use WP-CLI via PHP-framework?

  1. I have Zend framework 2 application (PHP), via which I want to use WP-CLI functionality. near Zend project I have WordPress project, which I want to maintain from Zend via WP-CLI.
  2. I see in the docs that WP-CLI also written on PHP. I dreamed that I install WP-CLI via composer in root of my project and can use its classes there.
  3. After installing via composer in WP-CLI's sources I see functions from WordPress (like as is_multisite and etc) and I little disappointed :).

main question: Can I in some way use WP-CLI sources directly from my Zend-project without calling commands via terminal? for example (in abstract programming language):

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

$result = $command-execute();

Or WP-CLI was made only as part of the WordPress project as way for extending it's commands and it is unable to use them as I am trying?

Topic framework wp-cli customization Wordpress

Category Web


This is probably unwise. WP-CLI is developed as a command line utility and might not maintain internal structure between releases.

Since everything has to run as root in any case, there is no real difference between executing a WP-CLI command via a shell (A.K.A exec and its family of functions), or by calling whatever API.


The WP_CLI class has a runcommand method that launches a new child process to run a specified WP-CLI command. According to the docs, you can use it like this:

$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 );

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.