WP_CLI\Dispatcher
Subcommand::invoke()
Invoke the subcommand with the supplied arguments. Given a --prompt argument, interactively request input from the end user.
Method of the class: Subcommand{}
No Hooks.
Return
null
. Nothing (null).
Usage
$Subcommand = new Subcommand(); $Subcommand->invoke( $args, $assoc_args, $extra_args );
- $args(array) (required)
- -
- $assoc_args(array) (required)
- -
- $extra_args (required)
- -
Subcommand::invoke() Subcommand::invoke code WP-CLI 2.8.0-alpha
public function invoke( $args, $assoc_args, $extra_args ) { static $prompted_once = false; if ( 'help' !== $this->name ) { if ( \WP_CLI::get_config( 'prompt' ) && ! $prompted_once ) { list( $_args, $assoc_args ) = $this->prompt_args( $args, $assoc_args ); $args = array_merge( $args, $_args ); $prompted_once = true; } } $extra_positionals = []; foreach ( $extra_args as $k => $v ) { if ( is_numeric( $k ) ) { if ( ! isset( $args[ $k ] ) ) { $extra_positionals[ $k ] = $v; } unset( $extra_args[ $k ] ); } } $args += $extra_positionals; list( $to_unset, $args, $assoc_args, $extra_args ) = $this->validate_args( $args, $assoc_args, $extra_args ); foreach ( $to_unset as $key ) { unset( $assoc_args[ $key ] ); } $path = get_path( $this->get_parent() ); $parent = implode( ' ', array_slice( $path, 1 ) ); $cmd = $this->name; if ( $parent ) { WP_CLI::do_hook( "before_invoke:{$parent}", $parent ); $cmd = $parent . ' ' . $cmd; } WP_CLI::do_hook( "before_invoke:{$cmd}", $cmd ); // Check if `--prompt` arg passed or not. if ( $prompted_once ) { // Unset empty args. $actual_args = $assoc_args; foreach ( $actual_args as $key ) { if ( empty( $actual_args[ $key ] ) ) { unset( $actual_args[ $key ] ); } } WP_CLI::log( sprintf( 'wp %s %s', $cmd, ltrim( Utils\assoc_args_to_str( $actual_args ), ' ' ) ) ); } call_user_func( $this->when_invoked, $args, array_merge( $extra_args, $assoc_args ) ); if ( $parent ) { WP_CLI::do_hook( "after_invoke:{$parent}", $parent ); } WP_CLI::do_hook( "after_invoke:{$cmd}", $cmd ); }