function register($name, $directive) { if (!is_callable($directive)) { throw new \InvalidArgumentException('Directive should be something callable'); } $this->directives[$name] = $directive; return $this; }