AbstractCommand
Base CLI command for use by LifterLMS CLI commands
Contents
Source Source
File: libraries/lifterlms-cli/src/Commands/AbstractCommand.php
abstract class AbstractCommand extends \WP_CLI_Command { /** * Determines whether or not a command is being chained. * * When chaining commands (like `addon uninstall --deactivate`) we skip * output of the secondary command (deactivate won't output it's success/error). * * @var boolean */ protected $chaining = false; /** * Chain a command within the class * * @since 0.0.1 * * @param string $command Method name of the command to chain. * @param array $args Indexed array of positional command arguments to pass to the chained command. * @param array $assoc_args Associative array of command options to pass to the chained command. * @return void */ protected function chain_command( $command, $args = array(), $assoc_args = array() ) { $this->chaining = true; $this->$command( $args, $assoc_args ); $this->chaining = false; } /** * Retrieve an LLMS_Add_On object for a given add-on by it's slug. * * @since 0.0.1 * * @param string $slug An add-on slug. Must be prefixed. * @param bool|WP_Error|string $err If truthy, will return `null` and use log to the console using a WP_CLI method as defined by $err_type. * Pass `true` to output a default error message. * Pass a WP_Error object or string to use as the error. * @param string $err_type Method to pass `$err` to when an error is encountered. Default `\WP_CLI::error()`. * Use `\WP_CLI::warning()` or `\WP_CLI::log()` where appropriate. * @return LLMS_Add_On|boolean|null Returns an add-on object if the add-on can be located or `false` if not found. * Returns `null` when an error is encountered and `$err` is a truthy. */ protected function get_addon( $slug, $err = false, $err_type = 'error' ) { $addon = llms_get_add_on( $this->prefix_slug( $slug ), 'slug' ); $exists = ! empty( $addon->get( 'id' ) ); if ( ! $exists && $err ) { $err = is_bool( $err ) ? sprintf( 'Invalid slug: %s.', $slug ) : $err; return \WP_CLI::$err_type( $err ); } return ! $exists ? false : $addon; } /** * Prefix an add-on slug with `lifterlms-` if it's not already present. * * @since 0.0.1 * * @param string $slug Add-on slug. * @return string */ protected function prefix_slug( $slug ) { if ( 0 !== strpos( $slug, 'lifterlms-' ) ) { $slug = "lifterlms-{$slug}"; } return $slug; } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- chain_command — Chain a command within the class
- get_addon — Retrieve an LLMS_Add_On object for a given add-on by it's slug.
- prefix_slug — Prefix an add-on slug with `lifterlms-` if it's not already present.
Changelog Changelog
Version | Description |
---|---|
0.0.1 | Introduced. |