ThinkPHP 3.2.3中遇到一个很不解的问题,调用外部类库的时候,比如用如下相同的语句
Vendor('Test.TestAutoload'); $userOperator = new UserOperator(); $result = $userOperator->get();
Vendor()函数写在Controller类中不可以,提示
Class ‘Home\Controller\UserOperator’ not found
但是写在Common文件夹中的function.php中就可以。
解决办法就是在Controller类中这样写
Vendor('Test.TestAutoload'); $userOperator = new \UserOperator(); $result = $userOperator->get();
其中原因查看官方手册
由于ThinkPHP/Library目录下面不存在Home目录,也没在
AUTOLOAD_NAMESPACE
参数定义Home命名空间,所以就把Home当成模块命名空间来识别,所以会自动加载如果你的类库没有使用命名空间定义的话,实例化的时候需要加上根命名空间
所以官方手册一定要看