Initial commit: Atomaste website
This commit is contained in:
@@ -0,0 +1,227 @@
|
||||
<?php
|
||||
/**
|
||||
* LiteSpeed CLI - database cleanup
|
||||
*
|
||||
* Add CLI database cleanup commands.
|
||||
*
|
||||
* @package LiteSpeed
|
||||
* @since 7.3
|
||||
*/
|
||||
|
||||
namespace LiteSpeed\CLI;
|
||||
|
||||
defined('WPINC') || exit();
|
||||
|
||||
use LiteSpeed\Debug2;
|
||||
use LiteSpeed\DB_Optm;
|
||||
use WP_CLI;
|
||||
|
||||
/**
|
||||
* LiteSpeed Cache Database CLI
|
||||
*/
|
||||
class Database {
|
||||
/**
|
||||
* Current blog id the optimization is working on.
|
||||
*
|
||||
* @var int|false $current_blog Current blog id.
|
||||
*/
|
||||
private $current_blog = false;
|
||||
/**
|
||||
* Database class.
|
||||
*
|
||||
* @var DB_Optim $db Database class.
|
||||
*/
|
||||
private $db;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*/
|
||||
public function __construct() {
|
||||
Debug2::debug('CLI_Database init');
|
||||
|
||||
$this->db = DB_Optm::cls();
|
||||
}
|
||||
|
||||
/**
|
||||
* List all site domains and ids on the network.
|
||||
*/
|
||||
public function network_list() {
|
||||
if ( !is_multisite() ) {
|
||||
WP_CLI::error('This is not a multisite installation!');
|
||||
|
||||
return;
|
||||
}
|
||||
$buf = WP_CLI::colorize("%CThe list of installs:%n\n");
|
||||
|
||||
$sites = get_sites();
|
||||
foreach ( $sites as $site ) {
|
||||
$buf .= WP_CLI::colorize( '%Y' . $site->domain . $site->path . ':%n ID ' . $site->blog_id ) . "\n";
|
||||
}
|
||||
|
||||
WP_CLI::line($buf);
|
||||
}
|
||||
|
||||
/**
|
||||
* Change to blog sent as param.
|
||||
*
|
||||
* @param array $args Description.
|
||||
*/
|
||||
private function change_to_blog( $args ) {
|
||||
if ( !isset( $args[0] ) || 'blog' !== $args[0] ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->current_blog = get_current_blog_id();
|
||||
$blogid = $args[1];
|
||||
if ( !is_numeric( $blogid ) ) {
|
||||
$error = WP_CLI::colorize( '%RError: invalid blog id entered.%n' );
|
||||
WP_CLI::line( $error );
|
||||
$this->network_list( $args );
|
||||
return;
|
||||
}
|
||||
$site = get_blog_details( $blogid );
|
||||
if ( false === $site ) {
|
||||
$error = WP_CLI::colorize( '%RError: invalid blog id entered.%n' );
|
||||
WP_CLI::line( $error );
|
||||
$this->network_list( $args );
|
||||
return;
|
||||
}
|
||||
switch_to_blog( $blogid );
|
||||
}
|
||||
|
||||
/**
|
||||
* Change to previous blog.
|
||||
*/
|
||||
private function change_to_default() {
|
||||
// Check if previous blog set.
|
||||
if ( $this->current_blog ) {
|
||||
switch_to_blog( $this->current_blog );
|
||||
// Switched to previous blog.
|
||||
$this->current_blog = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show CLI response.
|
||||
*
|
||||
* @param boolean $result Flag if result is success or failure.
|
||||
* @param string $action Action name.
|
||||
*/
|
||||
private function show_response( $result, $action ) {
|
||||
if ($result) {
|
||||
WP_CLI::success( $result );
|
||||
} else {
|
||||
WP_CLI::error( 'Error running optimization: ' . $action );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean actions function.
|
||||
*
|
||||
* @param int $args Action arguments.
|
||||
* @param array $types What data to clean.
|
||||
*/
|
||||
private function clean_action( $args, $types ) {
|
||||
$this->change_to_blog( $args );
|
||||
foreach ( $types as $type ) {
|
||||
$result = $this->db->handler_clean_db_cli( $type );
|
||||
$this->show_response( $result, $type );
|
||||
}
|
||||
$this->change_to_default();
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear posts data(revisions, orphaned, auto drafts, trashed posts).
|
||||
* # Start clearing posts data.
|
||||
* $ wp litespeed-database clear_posts
|
||||
* $ wp litespeed-database clear_posts blog 2
|
||||
*
|
||||
* @param string $args Action arguments.
|
||||
*/
|
||||
public function clear_posts( $args ) {
|
||||
$types = array(
|
||||
'revision',
|
||||
'orphaned_post_meta',
|
||||
'auto_draft',
|
||||
'trash_post',
|
||||
);
|
||||
$this->clean_action( $args, $types );
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear comments(spam and trash comments).
|
||||
* # Start clearing comments.
|
||||
* $ wp litespeed-database clear_comments
|
||||
* $ wp litespeed-database clear_comments blog 2
|
||||
*
|
||||
* @param string $args Action arguments.
|
||||
*/
|
||||
public function clear_comments( $args ) {
|
||||
$types = array(
|
||||
'spam_comment',
|
||||
'trash_comment',
|
||||
);
|
||||
$this->clean_action( $args, $types );
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear trackbacks/pingbacks.
|
||||
* # Start clearing trackbacks/pingbacks.
|
||||
* $ wp litespeed-database clear_trackbacks
|
||||
* $ wp litespeed-database clear_trackbacks blog 2
|
||||
*
|
||||
* @param string $args Action arguments.
|
||||
*/
|
||||
public function clear_trackbacks( $args ) {
|
||||
$types = array(
|
||||
'trackback-pingback',
|
||||
);
|
||||
$this->clean_action( $args, $types );
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear transients.
|
||||
* # Start clearing transients.
|
||||
* $ wp litespeed-database clear_transients
|
||||
* $ wp litespeed-database clear_transients blog 2
|
||||
*
|
||||
* @param string $args Action arguments.
|
||||
*/
|
||||
public function clear_transients( $args ) {
|
||||
$types = array(
|
||||
'expired_transient',
|
||||
'all_transients',
|
||||
);
|
||||
$this->clean_action( $args, $types );
|
||||
}
|
||||
|
||||
/**
|
||||
* Optimize tables.
|
||||
* # Start optimizing tables.
|
||||
* $ wp litespeed-database optimize_tables
|
||||
* $ wp litespeed-database optimize_tables blog 2
|
||||
*
|
||||
* @param string $args Action arguments.
|
||||
*/
|
||||
public function optimize_tables( $args ) {
|
||||
$types = array(
|
||||
'optimize_tables',
|
||||
);
|
||||
$this->clean_action( $args, $types );
|
||||
}
|
||||
|
||||
/**
|
||||
* Optimize database by running all possible operations.
|
||||
* # Start optimizing all.
|
||||
* $ wp litespeed-database optimize_all
|
||||
* $ wp litespeed-database optimize_all blog 2
|
||||
*
|
||||
* @param string $args Action arguments.
|
||||
*/
|
||||
public function optimize_all( $args ) {
|
||||
$types = array(
|
||||
'all',
|
||||
);
|
||||
$this->clean_action( $args, $types );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user