You are here

CachingFactory.php in Zircon Profile 8

File

vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php
View source
<?php

/*
 * This file is part of the PHP_TokenStream package.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * A caching factory for token stream objects.
 *
 * @author    Sebastian Bergmann <sebastian@phpunit.de>
 * @copyright Sebastian Bergmann <sebastian@phpunit.de>
 * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
 * @link      http://github.com/sebastianbergmann/php-token-stream/tree
 * @since     Class available since Release 1.0.0
 */
class PHP_Token_Stream_CachingFactory {

  /**
   * @var array
   */
  protected static $cache = array();

  /**
   * @param  string $filename
   * @return PHP_Token_Stream
   */
  public static function get($filename) {
    if (!isset(self::$cache[$filename])) {
      self::$cache[$filename] = new PHP_Token_Stream($filename);
    }
    return self::$cache[$filename];
  }

  /**
   * @param string $filename
   */
  public static function clear($filename = null) {
    if (is_string($filename)) {
      unset(self::$cache[$filename]);
    }
    else {
      self::$cache = array();
    }
  }

}

Classes

Namesort descending Description
PHP_Token_Stream_CachingFactory A caching factory for token stream objects.