public static function __callStatic($name, $args)
{
$not = false;
if (preg_match('/^not/', $name)) {
$matcher = lcfirst(substr($name, 3));
$not = true;
} else {
$matcher = $name;
}
$class = static::$_classes['matcher'];
if ($matchers = $class::get($matcher, true)) {
return new static(compact('name', 'matchers', 'not', 'args'));
}
throw new Exception("Unexisting matchers attached to `'{$name}'`.");
}