phprs\apis\ApiExporter::exportJson PHP Method

exportJson() public method

导出API信息
public exportJson ( $class = null )
    public function exportJson($class = null)
    {
        $apis = array();
        // 导出hook信息
        foreach ($this->router->getHooks() as $hooks) {
            foreach ($hooks as $method => $hook) {
                $entries = $hook->export();
                foreach ($entries as $entry) {
                    list($uri, $invoker) = $entry;
                    if ($class && $class != $invoker->getClassName()) {
                        continue;
                    }
                    $info['type'] = 'hook';
                    $info['uri'] = array($method, $uri);
                    $info = array_merge($info, $this->getInvokerInfo($method, $uri, $invoker));
                    $apis[$invoker->getClassName()]['apis'][] = $info;
                }
            }
        }
        // 导出api信息
        foreach ($this->router->getRoutes() as $method => $route) {
            $entries = $route->export();
            foreach ($entries as $entry) {
                list($uri, $invoker) = $entry;
                if ($class && $class != $invoker->getClassName()) {
                    continue;
                }
                $info['type'] = 'api';
                $info['uri'] = array($method, $uri);
                $info = array_merge($info, $this->getInvokerInfo($method, $uri, $invoker));
                $apis[$invoker->getClassName()]['apis'][] = $info;
            }
        }
        foreach ($apis as $class_name => &$info) {
            $ann = new \ReflectionClass($class_name);
            $apis[$class_name]['doc'] = $this->getDocText($ann->getDocComment());
            //排序, 便于阅读
            usort($info['apis'], function ($lh, $rh) {
                return strcmp($rh['uri'][1] . $rh['uri'][0], $lh['uri'][1] . $lh['uri'][0]);
            });
        }
        return $apis;
    }