pluginCode = $pluginCode; $reflection = new \ReflectionClass($this); $this->basePath = dirname($reflection->getFileName()); } /** * 设置配置 */ public function setConfig(array $config): void { $this->config = $config; } /** * 获取配置 */ public function getConfig(): array { return $this->config; } /** * 注册动作钩子监听器 */ protected function listen(string $hook, callable $callback, int $priority = 20): void { HookManager::register($hook, $callback, $priority); } /** * 注册过滤器钩子 */ protected function filter(string $hook, callable $callback, int $priority = 20): void { HookManager::registerFilter($hook, $callback, $priority); } /** * 移除事件监听器 */ protected function removeListener(string $hook): void { HookManager::remove($hook); } /** * 中断当前请求并返回新的响应 * * @param Response|string|array $response * @return never */ protected function intercept(Response|string|array $response): never { HookManager::intercept($response); } }