class ParserRegistry

Registry of parsers used by the application

Hierarchy

Expanded class hierarchy of ParserRegistry

6 files declare their use of ParserRegistry
Client.php in drupal/core/vendor/guzzle/http/Guzzle/Http/Client.php
CurlHandle.php in drupal/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
Request.php in drupal/core/vendor/guzzle/http/Guzzle/Http/Message/Request.php
RequestFactory.php in drupal/core/vendor/guzzle/http/Guzzle/Http/Message/RequestFactory.php
Response.php in drupal/core/vendor/guzzle/http/Guzzle/Http/Message/Response.php

... See full list

File

drupal/core/vendor/guzzle/parser/Guzzle/Parser/ParserRegistry.php, line 8

Namespace

Guzzle\Parser
View source
class ParserRegistry {

  /**
   * @var ParserRegistry Singleton instance
   */
  protected static $instance;

  /**
   * @var array Array of parser instances
   */
  protected $instances = array();

  /**
   * @var array Mapping of parser name to default class
   */
  protected $mapping = array(
    'message' => 'Guzzle\\Parser\\Message\\MessageParser',
    'cookie' => 'Guzzle\\Parser\\Cookie\\CookieParser',
    'url' => 'Guzzle\\Parser\\Url\\UrlParser',
    'uri_template' => 'Guzzle\\Parser\\UriTemplate\\UriTemplate',
  );

  /**
   * Get a singleton instance
   *
   * @return self
   * @codeCoverageIgnore
   */
  public static function getInstance() {
    if (!self::$instance) {
      self::$instance = new static();
    }
    return self::$instance;
  }

  /**
   * Constructor used to apply the most performant parsers based on loaded extensions
   */
  public function __construct() {

    // Use the PECL URI template parser if available
    if (extension_loaded('uri_template')) {
      $this->mapping['uri_template'] = 'Guzzle\\Parser\\UriTemplate\\PeclUriTemplate';
    }
  }

  /**
   * Get a parser by name from an instance
   *
   * @param string $name Name of the parser to retrieve
   *
   * @return mixed|null
   */
  public function getParser($name) {
    if (!isset($this->instances[$name])) {
      if (!isset($this->mapping[$name])) {
        return null;
      }
      $class = $this->mapping[$name];
      $this->instances[$name] = new $class();
    }
    return $this->instances[$name];
  }

  /**
   * Register a custom parser by name with the register
   *
   * @param string $name   Name or handle of the parser to register
   * @param mixed  $parser Instantiated parser to register
   */
  public function registerParser($name, $parser) {
    $this->instances[$name] = $parser;
  }

  /**
   * Get a specific parser by handle name
   *
   * @param string $name Name of the parser to retrieve
   *
   * @return mixed|null Returns null if the parser is not found or cannot be instantiated
   * @deprecated Will be removed in 3.1.0
   * @codeCoverageIgnore
   */
  public static function get($name) {
    return self::getInstance()
      ->getParser($name);
  }

  /**
   * Register a custom parser by name with the register
   *
   * @param      string $name   Name or handle of the parser to register
   * @param      mixed  $parser Instantiated parser to register
   * @deprecated Will be removed in 3.1.0
   * @codeCoverageIgnore
   */
  public static function set($name, $parser) {
    self::getInstance()
      ->registerParser($name, $parser);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ParserRegistry::$instance protected static property
ParserRegistry::$instances protected property
ParserRegistry::$mapping protected property
ParserRegistry::get Deprecated public static function Get a specific parser by handle name
ParserRegistry::getInstance public static function Get a singleton instance
ParserRegistry::getParser public function Get a parser by name from an instance
ParserRegistry::registerParser public function Register a custom parser by name with the register
ParserRegistry::set Deprecated public static function Register a custom parser by name with the register
ParserRegistry::__construct public function Constructor used to apply the most performant parsers based on loaded extensions