Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
firepot
/
wp-content
/
plugins
/
woocommerce-jetpack
/
src
/
data
:
CompiledData.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Static, read-only caching of data held in serialized files. * Used for pre-built arrays of information such as plural forms. */ class Loco_data_CompiledData implements ArrayAccess, Countable, IteratorAggregate { /** * @var array */ private static $reg = []; /** * @var string */ private $name; /** * @var array */ private $data; /** * @param string $name * @return self */ public static function get( $name ){ if( ! isset(self::$reg[$name]) ){ self::$reg[$name] = new Loco_data_CompiledData($name); } return self::$reg[$name]; } /** * Remove all cached data from memory * @return void */ public static function flush(){ self::$reg = []; } private function __construct( $name ){ $path = 'lib/data/'.$name.'.php'; $this->data = loco_include( $path ); $this->name = $name; } public function destroy(){ unset( self::$reg[$this->name], $this->data ); } #[ReturnTypeWillChange] public function offsetGet( $k ){ return isset($this->data[$k]) ? $this->data[$k] : null; } #[ReturnTypeWillChange] public function offsetExists( $k ){ return isset($this->data[$k]); } #[ReturnTypeWillChange] public function offsetUnset( $k ){ throw new RuntimeException('Read only'); } #[ReturnTypeWillChange] public function offsetSet( $k, $v ){ throw new RuntimeException('Read only'); } #[ReturnTypeWillChange] public function count(){ return count($this->data); } /** * Implements IteratorAggregate::getIterator * @return ArrayIterator */ #[ReturnTypeWillChange] public function getIterator(){ return new ArrayIterator( $this->data ); } }