/** * @param Decoda $code * @param $hook * @return Decoda */ protected function apply_hook(Decoda $code, $hook) { if (isset(static::$extra_hooks[$hook])) { $extra_hook = static::$extra_hooks[$hook] instanceof \DecodaHook ? static::$extra_hooks[$hook] : new static::$extra_hooks[$hook](); $code->addFilter($extra_hook); return $code; } switch ($hook) { case 'censor': $code->addHook(new \CensorHook()); break; case 'clickable': $code->addHook(new \ClickableHook()); break; case 'emoticon': $code->addHook(new \EmoticonHook()); break; } return $code; }