Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: /** Chris@0: * A caching factory for token stream objects. Chris@0: */ Chris@0: class PHP_Token_Stream_CachingFactory Chris@0: { Chris@0: /** Chris@0: * @var array Chris@0: */ Chris@14: protected static $cache = []; Chris@0: Chris@0: /** Chris@14: * @param string $filename Chris@14: * Chris@0: * @return PHP_Token_Stream Chris@0: */ Chris@0: public static function get($filename) Chris@0: { Chris@0: if (!isset(self::$cache[$filename])) { Chris@0: self::$cache[$filename] = new PHP_Token_Stream($filename); Chris@0: } Chris@0: Chris@0: return self::$cache[$filename]; Chris@0: } Chris@0: Chris@0: /** Chris@0: * @param string $filename Chris@0: */ Chris@0: public static function clear($filename = null) Chris@0: { Chris@0: if (is_string($filename)) { Chris@0: unset(self::$cache[$filename]); Chris@0: } else { Chris@14: self::$cache = []; Chris@0: } Chris@0: } Chris@0: }