You are here

class QueryPathExtensionRegistry in QueryPath 6

Same name and namespace in other branches
  1. 7.3 QueryPath/QueryPathExtension.php \QueryPathExtensionRegistry
  2. 7.2 QueryPath/QueryPathExtension.php \QueryPathExtensionRegistry

Hierarchy

Expanded class hierarchy of QueryPathExtensionRegistry

File

QueryPath/QueryPathExtension.php, line 12

View source
class QueryPathExtensionRegistry {
  public static $useRegistry = TRUE;
  protected static $extensionRegistry = array();
  protected static $extensionMethodRegistry = array();
  public static function extend($classname) {
    self::$extensionRegistry[] = $classname;
    $class = new ReflectionClass($classname);
    $methods = $class
      ->getMethods();
    foreach ($methods as $method) {
      self::$extensionMethodRegistry[$method
        ->getName()] = $classname;
    }
  }
  public static function hasMethod($name) {
    return isset(self::$extensionMethodRegistry[$name]);
  }
  public static function hasExtension($name) {
    return in_array($name, self::$extensionRegistry);
  }
  public static function getMethodClass($name) {
    return self::$extensionMethodRegistry[$name];
  }
  public static function getExtensions(QueryPath $qp) {
    $extInstances = array();
    foreach (self::$extensionRegistry as $ext) {
      $extInstances[$ext] = new $ext($qp);
    }
    return $extInstances;
  }
  public static function autoloadExtensions($boolean = TRUE) {
    self::$useRegistry = $boolean;
  }

}

Members