setup_cache_group( $group ); $this->_object_cache[ $group ][ $key ] = $value; $this->_updated = true; } /** * Returns all stored cache * * @return array */ public function get_all() { if ( ! $this->_object_cache ) { return array(); } else { $this->_object_cache; } } /** * Returns whole stored group * * @return array */ public function get_group( $group = 'global' ) { $this->setup_cache_group( $group ); if ( ! isset( $this->_object_cache[ $group ] ) ) { return array(); } return $this->_object_cache[ $group ]; } /** * Returns current value by key * * @return array */ public function get( $key = null, $group = 'global' ) { $this->setup_cache_group( $group ); if ( ! isset( $this->_object_cache[ $group ] ) ) { return false; } if ( ! isset( $this->_object_cache[ $group ][ $key ] ) ) { return false; } return $this->_object_cache[ $group ][ $key ]; } /** * Create base caching group if not exist. */ public function setup_cache() { if ( null === $this->_object_cache ) { $current = jdi_files_manager()->get_json( 'cache.json' ); if ( ! $current ) { $this->_object_cache = array(); } else { $this->_object_cache = $current; } } } /** * Create new group in base caching group if not exists */ public function setup_cache_group( $group = 'global' ) { $this->setup_cache(); if ( ! isset( $this->_object_cache[ $group ] ) ) { $this->_object_cache[ $group ] = array(); } } /** * Returns whole stored group * * @return void */ public function clear_cache( $group = null ) { if ( isset( $this->_object_cache['mapping'] ) ) { update_option( 'cache', $this->_object_cache['mapping'] ); } if ( null !== $group ) { $this->_object_cache[ $group ] = array(); jdi_files_manager()->write_cache(); } else { $this->_object_cache = array(); jdi_files_manager()->delete( 'cache.json' ); } } /** * Write static cache * * @return [type] [description] */ public function write_cache() { if ( true === $this->_updated ) { jdi_files_manager()->put_json( 'cache.json', $this->_object_cache ); } } } }