Main
LifterLMS Assignments Main Class
Contents
Source Source
File: libraries/lifterlms-cli/src/Main.php
final class Main {
/**
* Current version of the plugin
*
* @var string
*/
public $version = '0.0.1';
/**
* Singleton instance of the class
*
* @var LifterLMS_CLI
*/
private static $instance = null;
/**
* Singleton Instance of the LifterLMS_CLI class
*
* @since 0.0.1
*
* @return LifterLMS_CLI
*/
public static function instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor
*
* @since 0.0.1
*
* @return void
*/
private function __construct() {
if ( ! defined( 'LLMS_CLI_VERSION' ) ) {
define( 'LLMS_CLI_VERSION', $this->version );
}
// Get started (after REST).
add_action( 'plugins_loaded', array( $this, 'init' ) );
}
/**
* Add all LifterLMS CLI commands
*
* This includes a separate file so that commands can be included on their own
* when generating documentation.
*
* @since 0.0.1
*
* @return void
*/
public function commands() {
require_once LLMS_CLI_PLUGIN_DIR . 'src/commands.php';
}
/**
* Register WP_CLI hooks
*
* Loads all commands and sets up license and addon commands to be aborted
* if the LifterLMS Helper is not present.
*
* @since 0.0.1
*
* @return void
*/
private function hooks() {
\WP_CLI::add_hook( 'after_wp_load', array( $this, 'commands' ) );
// If the Helper doesn't exist abort command addition.
if ( ! class_exists( 'LifterLMS_Helper' ) ) {
$helper_commands = array(
'license',
'addon install',
'addon uninstall',
'addon activate',
'addon deactivate',
'addon update',
);
foreach ( $helper_commands as $command ) {
\WP_CLI::add_hook(
"before_add_command:llms {$command}",
function( CommandAddition $command_addition ) {
$command_addition->abort( 'The LifterLMS Helper is required to use this command.' );
}
);
}
}
}
/**
* Include all required files and classes
*
* @since [version
*
* @return void
*/
public function init() {
// Only load if we have the minimum LifterLMS version installed & activated.
if ( function_exists( 'llms' ) && version_compare( '5.0.0', llms()->version, '<=' ) ) {
$this->hooks();
}
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor
- commands — Add all LifterLMS CLI commands
- hooks — Register WP_CLI hooks
- init — Include all required files and classes
- instance — Singleton Instance of the LifterLMS_CLI class
Changelog Changelog
| Version | Description |
|---|---|
| 0.0.1 | Introduced. |