setCallback($callback); } $this->setScoped($scoped); } /** * Set callback * @param callable $callback * @return void */ public function setCallback(callable $callback) { $this->callback = $callback; } /** * Mark hook as scoped * @param bool $scoped */ public function setScoped($scoped) { $this->scoped = $scoped; } /** * Is scoped hook * @return bool */ public function isScoped() { return $this->scoped; } public function __invoke() { $args = func_get_args(); if (! is_null($this->callback)) { return call_user_func_array($this->callback, $args); } return ($args[0] ?? ''); } }