Can
Be Better

ThinkPHP 自动加载(Vendor)

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当成模块命名空间来识别,所以会自动加载

如果你的类库没有使用命名空间定义的话,实例化的时候需要加上根命名空间

所以官方手册一定要看

不开启评论,如有问题疑问请发邮件。[email protected]最长的路 » ThinkPHP 自动加载(Vendor)

评论 抢沙发

评论前必须登录!