如何在PHP5中使用php think api一键生成API文档

Karson 7月前 1504

FastAdmin在1.0.0.20180308_beta中已经新增了一键生成API文档的功能,此功能可以很方便的根据让我们生成API接口的文档,但是在PHP5中某此情况下可能会导致无法使用此功能。
由于此功能使用了PHP中的ReflectionClass进行分析控制器中的注释和方法,在PHP5中有这样一个BUG会导致在部分情况下产生一个Fatal Error,导致我们无法生成API文档,通常的情况下报错为:

Fatal error: Cannot use app\common\library\Ems as Ems because the name is already in use in C:\phpStudy\WWW\fastadmin\application\api\controller\User.php on line 6

此BUG只在PHP5中出现,PHP7中不会有此问题,具体请查看BUG说明:

https://bugs.php.net/bug.php?id=66773 
https://bugs.php.net/bug.php?id=71079

但我们在PHP5中安装Opcache且启用后,此BUG将不会出现。因为我们建议你如果你使用了PHP5版本,建议你安装启用Opcache,同时需要启用opcache.enable_cli
如何启用Opcache?
因为在PHP5以后都自带Opcache了,我们只需要启用它即可。
1.如果你使用的是phpStudy,可以直接点击其它选项菜单->PHP扩展及设置->PHP扩展,勾选php_opcache,然后点击其它选项菜单->打开配置文件->php-ini,搜索opcache.enable,将opcache.enableopcache.enable_cli都置为1。
2.如果你是在Linux环境,请查找php.ini所在位置,修改其中的opcache.enable值。
重启服务后再次使用php think api --force=true将可正常生成API文档。

最新回复 (20)
  • FastAdmin_MUCH 4月前
    感谢TA
    0 引用 2

    大神 这边都按照 你的配置了 phpinof() 也显示
    PHP Version 5.6.34
    opcache.enable On On
    opcache.enable_cli On On
    Windows命令行
    使用php think api --force=true 任然报错
    [thinkException]
    Please make sure opcache already enabled, Get help:https://forum.fastadmin.net/d/1321

  • F4NNIU 打赏 4月前
    感谢TA
    0 引用 3
    FastAdmin_MUCH 大神 这边都按照 你的配置了 phpinof() 也显示 PHP Version 5.6.34 opcache.enable On On opcache.enable_cli On On ...

    我前几天用 php5.6 试过是可以的。
    或者你再试试 php7。

  • 煮酒品天下 3月前
    感谢TA
    0 引用 4

    opcache.enable和opcache.enable_cli这两个值前面的符号“;”要去掉

  • HCH 3月前
    感谢TA
    0 引用 5

    按照上面的方法启用了php_opcache,然后在php-ini里,将opcache.enable和opcache.enable_cli都置为1,前面的;也去掉了,但还是出现[thinkException]
    Please make sure opcache already enabled, Get help:https://forum.fastadmin.net/d/1321,请问还要怎么设置

  • HCH 3月前
    感谢TA
    0 引用 6

    请问你的这个问题解决了吗?我现在也遇到了跟你一样的情况@FastAdmin_MUCH ,不知道如何解决

  • benswei 3月前
    感谢TA
    0 引用 7

    @HCH @FastAdmin_MUCH 还差1个地方,开启这里就好了
    zend_extension="D:phpStudyPHPTutorialphpphp-5.6.27-ntsextphp_opcache.dll"

  • wangxuemei 2月前
    感谢TA
    0 引用 8

    api 一键生成 指定目录总是提示 module not found

  • myfey 2月前
    感谢TA
    0 引用 9

    Notice: Use of undefined constant ROOT_PATH - assumed 'ROOT_PATH' in ..vendorkarsonzhangfastadmin-addonssrccommon.php on line 12

    Notice: Use of undefined constant DS - assumed 'DS' in ..vend
    orkarsonzhangfastadmin-addonssrccommon.php on line 12

    Fatal error: Class 'thinkConfig' not found in ..thinkphplib
    rarythinkRoute.php on line 290

    最后于 2月前 被myfey编辑
  • qmit2099 2月前
    感谢TA
    0 引用 10

    我的也是一样,开启了php_opcache,且php.ini中的两处也均设置好了,依然显示这个错误。

    最后于 2月前 被qmit2099编辑
  • qmit2099 2月前
    感谢TA
    0 引用 11
    HCH 按照上面的方法启用了php_opcache,然后在php-ini里,将opcache.enable和opcache.enable_cli都置为1,前面的;也去掉了,但还是出现[think\Except ...

    请问解决了吗,我的也是一样哦。

  • qmit2099 2月前
    感谢TA
    0 引用 12

    @Karson @F4NNIU 我的phpstudy是完全按照上面的配置来弄的,依然提示

    [thinkException]
    Please make sure opcache already enabled, Get help:https://forum.fastadmin.
    net/d/1321

    请问怎么解决?

  • F4NNIU 打赏 2月前
    感谢TA
    0 引用 13
    qmit @Karson @F4NNIU 我的phpstudy是完全按照上面的配置来弄的,依然提示 [think\Exception] Please make sure opcache alre ...

    看看 phpinfo 里有没有打开?

  • qmit2099 2月前
    感谢TA
    0 引用 14

    @F4NNIU 01.png
    02.png
    看到打开了,没有问题吧?php是版本5.6.27-nts,将phpstudy的版本切换到7.0.12-nts的,依然爆出异常:请确认是否安装opcache,然后提示访问那个帖子。

    最后于 2月前 被qmit2099编辑
  • qmit2099 2月前
    感谢TA
    0 引用 15
    FastAdmin_MUCH 大神 这边都按照 你的配置了 phpinof() 也显示 PHP Version 5.6.34 opcache.enable On On opcache.enable_cli On On ...

    @FastAdmin_MUCH 请问你是怎么解决的呢,好多种配置均不行哦。

  • qmit2099 2月前
    感谢TA
    0 引用 16

    @F4NNIU 我的一直提示是:image.png
    会不会是上面的那句:Failed loading ext./ext/ZendLoader.dll的影响?

  • F4NNIU 打赏 2月前
    感谢TA
    0 引用 17

    php 扩展没有安装成功?

  • qmit2099 2月前
    感谢TA
    0 引用 18

    可能,用php7.2的,虽然也会有别的警告,但是可以成功生成api.html文档。

  • panhao 27天前
    感谢TA
    0 引用 19

    zend_extension="D:phpStudyPHPTutorialphpphp-5.6.27-ntsextphp_opcache.dll" 改了那两个 这个也要注意一下。

  • F4NNIU 打赏 27天前
    感谢TA
    0 引用 20
    panhao zend_extension="D:phpStudyPHPTutorialphpphp-5.6.27-ntsextphp_opcache.dll" 改了那两个 这个也要注意一下。

    感谢分享。

  • 未登录
    22
返回