4

我正在为使用 yiisoft/yii2-apidoc (#0.2.4) 用 yii2 编写的项目构建文档。我已经构建了一个 shell 脚本来发布文档,当我只包含项目文件和我自己的通过 composer 引入的 cms 代码库时,它工作正常。

这是代码

 #!/bin/sh

VENDOR="../vendor"

# remove existing docs
rm -rf ./frontend/web/docs

# create new docs, by drawing in all prroject code and TiCMS code. exclude the docs themselves.
$VENDOR/yiisoft/yii2-apidoc/apidoc api ./,$VENDOR/toruinteractive/ti-cms ./frontend/web/docs --interactive=0  --exclude="./frontend/web/docs"

所以这会生成包含我所有代码的文档......

生成的文档显示我的课程

但是当我添加 yii 框架时问题就来了——我需要它来显示我的代码继承的方法和参数。所以添加了 yii2 框架的新代码是......

#!/bin/sh

VENDOR="../vendor"

# remove existing docs - this is needed as it sometimes doesn't exclude the docs folder and the output then gets cached.
rm -rf ./frontend/web/docs

# create new docs, by drawing in all prroject code and TiCMS code. exclude the docs themselves.
$VENDOR/yiisoft/yii2-apidoc/apidoc api ./,$VENDOR/toruinteractive/ti-cms,$VENDOR/yiisoft/yii2 ./frontend/web/docs --interactive=0  --exclude="./frontend/web/docs"

这会生成列出 yii2 代码的文档 - 我的所有课程都已消失(见下面的屏幕截图)。我在这里看不到我做错了什么,有人可以帮忙吗?

当您将 yii2 添加到组合中时,您只会看到他们的课程

4

1 回答 1

1

您遇到了与yiisoft/yii2 #7789中描述的相同的问题,正如Yii 开发人员回答的那样,apidoc 命令现在适用于 Yii 框架文档。

如果你还想使用它,你必须排除 Yii 框架所在的目录。假设它是./vendor/yiisoft,那么排除选项将是

--exclude="./frontend/web/docs,./vendor/yiisoft"

通过检查BaseController.phpApiController.php,您可以看到只有在未提供排除选项时才会忽略整个目录vendor和目录。tests由于您提供了排除选项,因此不使用默认排除。

如果您想知道为什么包含vendor/yiisoft目录会导致问题,您需要研究 apidoc 扩展中的详细信息,特别是您案例中的引导模板

于 2016-08-15T09:22:54.637 回答