芝麻web文件管理V1.00
编辑当前文件:/home/paymbalq/www/wp-content/plugins/w3-total-cache/ConfigState.php
.hide_note_suggest_activation * track.bunnycdn_signup * * phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore * phpcs:disable WordPress.PHP.NoSilencedErrors.Discouraged */ class ConfigState { /** * Data * * @var array */ private $_data; /** * Is master flag * * @var bool */ private $_is_master; /** * Initializes the configuration state. * * @param bool $is_master Whether this is the master configuration state. * * @return void */ public function __construct( $is_master ) { $this->_is_master = $is_master; if ( $is_master ) { $data_raw = get_site_option( 'w3tc_state' ); } else { $data_raw = get_option( 'w3tc_state' ); } $this->_data = @json_decode( $data_raw, true ); if ( ! is_array( $this->_data ) ) { $this->_data = array(); $this->apply_defaults(); $this->save(); } } /** * Retrieves a value from the configuration state by key. * * @param string $key The key to retrieve. * @param mixed $default_value The default value to return if the key is not set. * * @return mixed The value associated with the key, or the default value. */ public function get( $key, $default_value ) { if ( ! isset( $this->_data[ $key ] ) ) { return $default_value; } return $this->_data[ $key ]; } /** * Retrieves a string value from the configuration state. * * @param string $key The key to retrieve. * @param string $default_value The default string to return if the key is not set. Default is an empty string. * @param bool $trim Whether to trim the returned string. Default is true. * * @return string The string value associated with the key, or the default string. */ public function get_string( $key, $default_value = '', $trim = true ) { $value = (string) $this->get( $key, $default_value ); return $trim ? trim( $value ) : $value; } /** * Retrieves an integer value from the configuration state. * * @param string $key The key to retrieve. * @param int $default_value The default integer to return if the key is not set. Default is 0. * * @return int The integer value associated with the key, or the default integer. */ public function get_integer( $key, $default_value = 0 ) { return (int) $this->get( $key, $default_value ); } /** * Retrieves a boolean value from the configuration state. * * @param string $key The key to retrieve. * @param bool $default_value The default boolean to return if the key is not set. Default is false. * * @return bool The boolean value associated with the key, or the default boolean. */ public function get_boolean( $key, $default_value = false ) { $v = $this->get( $key, $default_value ); if ( 'false' === $v || empty( $v ) ) { $v = false; } return (bool) $v; } /** * Retrieves an array value from the configuration state. * * @param string $key The key to retrieve. * @param array $default_value The default array to return if the key is not set. Default is an empty array. * * @return array The array value associated with the key, or the default array. */ public function get_array( $key, $default_value = array() ) { return (array) $this->get( $key, $default_value ); } /** * Sets a value in the configuration state. * * @param string $key The key to set. * @param mixed $value The value to associate with the key. * * @return void */ public function set( $key, $value ) { $this->_data[ $key ] = $value; } /** * Resets the configuration state to its default values. * * @return void */ public function reset() { $this->_data = array(); $this->apply_defaults(); } /** * Saves the current configuration state. * * @return void */ public function save() { if ( $this->_is_master ) { update_site_option( 'w3tc_state', wp_json_encode( $this->_data ) ); } else { update_option( 'w3tc_state', wp_json_encode( $this->_data ) ); } } /** * Applies default values to the configuration state. * * @return void */ private function apply_defaults() { $this->set( 'common.install', time() ); $this->set( 'common.install_version', W3TC_VERSION ); } }