!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.3.27 

uname -a: Linux pdx1-shared-a4-04 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64 

uid=6659440(dh_z2jmpm) gid=2086089(pg10499364) groups=2086089(pg10499364)  

Safe-mode: OFF (not secure)

/usr/local/wp/vendor/wp-cli/cache-command/src/   drwxr-xr-x
Free 711.11 GB of 879.6 GB (80.85%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Cache_Command.php (13.5 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

use WP_CLI\Traverser\RecursiveDataStructureTraverser;
use WP_CLI\Utils;

/**
 * Adds, removes, fetches, and flushes the WP Object Cache object.
 *
 * By default, the WP Object Cache exists in PHP memory for the length of the
 * request (and is emptied at the end). Use a persistent object cache drop-in
 * to persist the object cache between requests.
 *
 * [Read the codex article](https://codex.wordpress.org/Class_Reference/WP_Object_Cache)
 * for more detail.
 *
 * ## EXAMPLES
 *
 *     # Set cache.
 *     $ wp cache set my_key my_value my_group 300
 *     Success: Set object 'my_key' in group 'my_group'.
 *
 *     # Get cache.
 *     $ wp cache get my_key my_group
 *     my_value
 *
 * @package wp-cli
 */
class Cache_Command extends WP_CLI_Command {

    /**
     * Adds a value to the object cache.
     *
     * Errors if a value already exists for the key, which means the value can't
     * be added.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * <value>
     * : Value to add to the key.
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * [<expiration>]
     * : Define how long to keep the value, in seconds. `0` means as long as possible.
     * ---
     * default: 0
     * ---
     *
     * ## EXAMPLES
     *
     *     # Add cache.
     *     $ wp cache add my_key my_group my_value 300
     *     Success: Added object 'my_key' in group 'my_value'.
     */
    public function add( $args, $assoc_args ) {
        list( $key, $value, $group, $expiration ) = $args;

        if ( ! wp_cache_add( $key, $value, $group, $expiration ) ) {
            WP_CLI::error( "Could not add object '$key' in group '$group'. Does it already exist?" );
        }

        WP_CLI::success( "Added object '$key' in group '$group'." );
    }

    /**
     * Decrements a value in the object cache.
     *
     * Errors if the value can't be decremented.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * [<offset>]
     * : The amount by which to decrement the item's value.
     * ---
     * default: 1
     * ---
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * ## EXAMPLES
     *
     *     # Decrease cache value.
     *     $ wp cache decr my_key 2 my_group
     *     48
     */
    public function decr( $args, $assoc_args ) {
        list( $key, $offset, $group ) = $args;
        $value = wp_cache_decr( $key, $offset, $group );

        if ( false === $value ) {
            WP_CLI::error( 'The value was not decremented.' );
        }

        WP_CLI::print_value( $value, $assoc_args );
    }

    /**
     * Removes a value from the object cache.
     *
     * Errors if the value can't be deleted.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * ## EXAMPLES
     *
     *     # Delete cache.
     *     $ wp cache delete my_key my_group
     *     Success: Object deleted.
     */
    public function delete( $args, $assoc_args ) {
        list( $key, $group ) = $args;
        $result              = wp_cache_delete( $key, $group );

        if ( false === $result ) {
            WP_CLI::error( 'The object was not deleted.' );
        }

        WP_CLI::success( 'Object deleted.' );
    }

    /**
     * Flushes the object cache.
     *
     * For WordPress multisite instances using a persistent object cache,
     * flushing the object cache will typically flush the cache for all sites.
     * Beware of the performance impact when flushing the object cache in
     * production.
     *
     * Errors if the object cache can't be flushed.
     *
     * ## EXAMPLES
     *
     *     # Flush cache.
     *     $ wp cache flush
     *     Success: The cache was flushed.
     */
    public function flush( $args, $assoc_args ) {

        if ( WP_CLI::has_config( 'url' ) && ! empty( WP_CLI::get_config()['url'] ) && is_multisite() ) {
            WP_CLI::warning( 'Flushing the cache may affect all sites in a multisite installation, depending on the implementation of the object cache.' );
        }

        $value = wp_cache_flush();
        if ( false === $value ) {
            WP_CLI::error( 'The object cache could not be flushed.' );
        }

        WP_CLI::success( 'The cache was flushed.' );
    }

    /**
     * Gets a value from the object cache.
     *
     * Errors if the value doesn't exist.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * ## EXAMPLES
     *
     *     # Get cache.
     *     $ wp cache get my_key my_group
     *     my_value
     */
    public function get( $args, $assoc_args ) {
        list( $key, $group ) = $args;
        $value               = wp_cache_get( $key, $group );

        if ( false === $value ) {
            WP_CLI::error( "Object with key '$key' and group '$group' not found." );
        }

        WP_CLI::print_value( $value, $assoc_args );
    }

    /**
     * Increments a value in the object cache.
     *
     * Errors if the value can't be incremented.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * [<offset>]
     * : The amount by which to increment the item's value.
     * ---
     * default: 1
     * ---
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * ## EXAMPLES
     *
     *     # Increase cache value.
     *     $ wp cache incr my_key 2 my_group
     *     50
     */
    public function incr( $args, $assoc_args ) {
        list( $key, $offset, $group ) = $args;
        $value = wp_cache_incr( $key, $offset, $group );

        if ( false === $value ) {
            WP_CLI::error( 'The value was not incremented.' );
        }

        WP_CLI::print_value( $value, $assoc_args );
    }

    /**
     * Replaces a value in the object cache, if the value already exists.
     *
     * Errors if the value can't be replaced.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * <value>
     * : Value to replace.
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * [<expiration>]
     * : Define how long to keep the value, in seconds. `0` means as long as possible.
     * ---
     * default: 0
     * ---
     *
     * ## EXAMPLES
     *
     *     # Replace cache.
     *     $ wp cache replace my_key new_value my_group
     *     Success: Replaced object 'my_key' in group 'my_group'.
     */
    public function replace( $args, $assoc_args ) {
        list( $key, $value, $group, $expiration ) = $args;
        $result = wp_cache_replace( $key, $value, $group, $expiration );

        if ( false === $result ) {
            WP_CLI::error( "Could not replace object '$key' in group '$group'. Does it not exist?" );
        }

        WP_CLI::success( "Replaced object '$key' in group '$group'." );
    }

    /**
     * Sets a value to the object cache, regardless of whether it already exists.
     *
     * Errors if the value can't be set.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * <value>
     * : Value to set on the key.
     *
     * [<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * [<expiration>]
     * : Define how long to keep the value, in seconds. `0` means as long as possible.
     * ---
     * default: 0
     * ---
     *
     * ## EXAMPLES
     *
     *     # Set cache.
     *     $ wp cache set my_key my_value my_group 300
     *     Success: Set object 'my_key' in group 'my_group'.
     */
    public function set( $args, $assoc_args ) {
        list( $key, $value, $group, $expiration ) = $args;
        $result = wp_cache_set( $key, $value, $group, $expiration );

        if ( false === $result ) {
            WP_CLI::error( "Could not add object '$key' in group '$group'." );
        }

        WP_CLI::success( "Set object '$key' in group '$group'." );
    }

    /**
     * Attempts to determine which object cache is being used.
     *
     * Note that the guesses made by this function are based on the
     * WP_Object_Cache classes that define the 3rd party object cache extension.
     * Changes to those classes could render problems with this function's
     * ability to determine which object cache is being used.
     *
     * ## EXAMPLES
     *
     *     # Check cache type.
     *     $ wp cache type
     *     Default
     */
    public function type( $args, $assoc_args ) {
        $message = WP_CLI\Utils\wp_get_cache_type();
        WP_CLI::line( $message );
    }

    /**
     * Determines whether the object cache implementation supports a particular feature.
     *
     * ## OPTIONS
     *
     * <feature>
     * : Name of the feature to check for.
     *
     * ## EXAMPLES
     *
     *     # Check whether is add_multiple supported.
     *     $ wp cache supports add_multiple
     *     $ echo $?
     *     0
     *
     *     # Bash script for checking whether for support like this:
     *     if ! wp cache supports non_existing; then
     *         echo 'non_existing is not supported'
     *     fi
     */
    public function supports( $args, $assoc_args ) {
        list ( $feature ) = $args;

        if ( ! function_exists( 'wp_cache_supports' ) ) {
            WP_CLI::error( 'Checking cache features is only available in WordPress 6.1 and higher' );
        }

        $supports = wp_cache_supports( $feature );

        if ( $supports ) {
            WP_CLI::halt( 0 );
        }
        WP_CLI::halt( 1 );
    }

    /**
     * Removes all cache items in a group, if the object cache implementation supports it.
     *
     * ## OPTIONS
     *
     * <group>
     * : Cache group key.
     *
     * ## EXAMPLES
     *
     *     # Clear cache group.
     *     $ wp cache flush-group my_group
     *     Success: Cache group 'my_group' was flushed.
     *
     * @subcommand flush-group
     */
    public function flush_group( $args, $assoc_args ) {
        list( $group ) = $args;

        if ( ! function_exists( 'wp_cache_supports' ) || ! wp_cache_supports( 'flush_group' ) ) {
            WP_CLI::error( 'Group flushing is not supported.' );
        }

        if ( ! wp_cache_flush_group( $group ) ) {
            WP_CLI::error( "Cache group '$group' was not flushed." );
        }
        WP_CLI::success( "Cache group '$group' was flushed." );
    }

    /**
     * Get a nested value from the cache.
     *
     * ## OPTIONS
     *
     * <key>
     * : Cache key.
     *
     * <key-path>...
     * : The name(s) of the keys within the value to locate the value to pluck.
     *
     * [--group=<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * [--format=<format>]
     * : The output format of the value.
     * ---
     * default: plaintext
     * options:
     *   - plaintext
     *   - json
     *   - yaml
     * ---
     */
    public function pluck( $args, $assoc_args ) {
        list( $key ) = $args;
        $group       = Utils\get_flag_value( $assoc_args, 'group' );

        $value = wp_cache_get( $key, $group );

        if ( false === $value ) {
            WP_CLI::warning( "No object found for the key '$key' in group '$group'" );
            exit;
        }

        $key_path = array_map(
            function ( $key ) {
                if ( is_numeric( $key ) && ( (string) intval( $key ) === $key ) ) {
                    return (int) $key;
                }
                return $key;
            },
            array_slice( $args, 1 )
        );

        $traverser = new RecursiveDataStructureTraverser( $value );

        try {
            $value = $traverser->get( $key_path );
        } catch ( \Exception $e ) {
            die( 1 );
        }

        WP_CLI::print_value( $value, $assoc_args );
    }

    /**
     * Update a nested value from the cache.
     *
     * ## OPTIONS
     *
     * <action>
     * : Patch action to perform.
     * ---
     * options:
     *   - insert
     *   - update
     *   - delete
     * ---
     *
     * <key>
     * : Cache key.
     *
     * <key-path>...
     * : The name(s) of the keys within the value to locate the value to patch.
     *
     * [<value>]
     * : The new value. If omitted, the value is read from STDIN.
     *
     * [--group=<group>]
     * : Method for grouping data within the cache which allows the same key to be used across groups.
     * ---
     * default: default
     * ---
     *
     * [--expiration=<expiration>]
     *  : Define how long to keep the value, in seconds. `0` means as long as possible.
     *  ---
     *  default: 0
     *  ---
     *
     * [--format=<format>]
     * : The serialization format for the value.
     * ---
     * default: plaintext
     * options:
     *   - plaintext
     *   - json
     * ---
     */
    public function patch( $args, $assoc_args ) {
        list( $action, $key ) = $args;
        $group                = Utils\get_flag_value( $assoc_args, 'group' );
        $expiration           = Utils\get_flag_value( $assoc_args, 'expiration' );

        $key_path = array_map(
            function ( $key ) {
                if ( is_numeric( $key ) && ( (string) intval( $key ) === $key ) ) {
                    return (int) $key;
                }

                return $key;
            },
            array_slice( $args, 2 )
        );

        if ( 'delete' === $action ) {
            $patch_value = null;
        } else {
            $stdin_value = Utils\has_stdin()
                ? trim( WP_CLI::get_value_from_arg_or_stdin( $args, -1 ) )
                : null;

            if ( ! empty( $stdin_value ) ) {
                $patch_value = WP_CLI::read_value( $stdin_value, $assoc_args );
            } elseif ( count( $key_path ) > 1 ) {
                $patch_value = WP_CLI::read_value( array_pop( $key_path ), $assoc_args );
            } else {
                $patch_value = null;
            }

            if ( null === $patch_value ) {
                WP_CLI::error( 'Please provide value to update.' );
            }
        }

        /* Need to make a copy of $current_value here as it is modified by reference */
        $old_value     = wp_cache_get( $key, $group );
        $current_value = $old_value;
        if ( is_object( $old_value ) ) {
            $current_value = clone $old_value;
        }

        $traverser = new RecursiveDataStructureTraverser( $current_value );

        try {
            $traverser->$action( $key_path, $patch_value );
        } catch ( \Exception $e ) {
            WP_CLI::error( $e->getMessage() );
        }

        $patched_value = $traverser->value();

        if ( $patched_value === $old_value ) {
            WP_CLI::success( "Value passed for cache key '$key' is unchanged." );
        } else {
            $success = wp_cache_set( $key, $patched_value, $group, $expiration );
            if ( $success ) {
                WP_CLI::success( "Updated cache key '$key'." );
            } else {
                WP_CLI::error( "Could not update cache key '$key'." );
            }
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0897 ]--