1 2 3 4
| $ php think api --force=true
[ReflectionException] Class app\api\controller\hongfs\ does not exist
|
这个报错很明显的,是反射异常,通过对 api 命令的追踪,代码的流程大概是:
1 2 3 4 5
| application/admin/command/Api.php->execute application/admin/command/Api/library/Builder.php->render application/admin/command/Api/library/Builder.php->parse application/admin/command/Api/library/Builder.php->extractAnnotations application/admin/command/Api/library/Extractor.php->getClassAnnotations
|
最先使用反射的是 getClassAnnotations
,然后把传进来的值输出到日志看一下。看到的内容其实和报错一样的,不是一个正常类,所以我们在进入前把它排除掉就可以了。
application/admin/command/Api.php:111
1 2 3 4 5 6 7 8 9 10 11 12 13
| $classes = array_unique(array_filter($classes));
$classes = array_filter($classes, function ($value) { if (!$value) { return false; }
return preg_match_all('/(.*)\\\\$/', $value) === 0; });
$classes = array_unique($classes);
|