api = new Api(); } /** * Get all available methods with remote access. * * By default it exports all public methods of a remote plugin. Methods beginning * with an underscore are skipped. * * @return ApiCall[] Information about all provided methods. ('methodname' => ApiCall) * @throws ReflectionException */ public function getMethods() { $result = []; $reflection = new \ReflectionClass($this); foreach ($reflection->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { // skip parent methods, only methods further down are exported $declaredin = $method->getDeclaringClass()->name; if ($declaredin === 'dokuwiki\Extension\Plugin' || $declaredin === 'dokuwiki\Extension\RemotePlugin') { continue; } $method_name = $method->name; if ($method_name[0] === '_') { continue; } if ($method_name === 'getMethods') { continue; // skip self, if overridden } // add to result $result[$method_name] = new ApiCall([$this, $method_name], 'plugins'); } return $result; } /** * @deprecated 2023-11-30 */ public function _getMethods() { dbg_deprecated('getMethods()'); } /** * @return Api */ protected function getApi() { return $this->api; } }