private static function create_subcommand($parent, $name, $class_name, $method) { $docparser = new \WP_CLI\DocParser($method->getDocComment()); if (!$name) { $name = $docparser->get_tag('subcommand'); } if (!$name) { $name = $method->name; } $method_name = $method->name; $when_invoked = function ($args, $assoc_args) use($class_name, $method_name) { call_user_func(array(new $class_name(), $method_name), $args, $assoc_args); }; return new Subcommand($parent, $name, $docparser, $when_invoked); }
/** * Create a new Subcommand instance. * * @param mixed $parent The new command's parent Composite command * @param string $name Represents how the command should be invoked * @param mixed $callable A callable function or closure, or class name and method * @param object $reflection Reflection instance, for doc parsing * @param string $class A subclass of WP_CLI_Command * @param string $method Class method to be called upon invocation. */ private static function create_subcommand($parent, $name, $callable, $reflection) { $docparser = new \WP_CLI\DocParser($reflection->getDocComment()); if (is_array($callable)) { if (!$name) { $name = $docparser->get_tag('subcommand'); } if (!$name) { $name = $reflection->name; } } $when_invoked = function ($args, $assoc_args) use($callable) { if (is_array($callable)) { call_user_func(array(new $callable[0](), $callable[1]), $args, $assoc_args); } else { call_user_func($callable, $args, $assoc_args); } }; return new Subcommand($parent, $name, $docparser, $when_invoked); }