php 具有非复合名称的use语句

4bbkushb  于 11个月前  发布在  PHP
关注(0)|答案(1)|浏览(128)

在我的laravel项目中,我创建了一个名为CustomerLinks的模型。该模型位于app/models文件夹中。我的composer文件自动加载:

"autoload": {
    "classmap": [
        ...
        "app/models",
        ...

    ],
    ...
},

字符串
我在ExtendedUserController中有一个use语句引用了CustomerLinks

<?php

...
use CustomerLinks;
...

class ExtendedUserController extends UserController {


我的理解是,由于composer文件中的autoload属性在classmap中有app/models,这意味着我应该能够使用没有名称空间前缀的use CustomerLinks
这是可行的,但每当我更改ExtendedUserController并重新加载浏览器时,我都会收到错误:

The use statement with non-compound name 'CustomerLinks' has no effect


错误指向use CustomerLinks线路扩展用户控制器。
当我执行composer dump-autoload时,一切都很好,但当我必须遵循该模式时,它变得非常令人恼火
进行更改->转储自动加载->刷新浏览器->重复
有没有什么办法来处理这个错误?

ha5z0ras

ha5z0ras1#

如果你不在一个命名空间中(也就是说你在根命名空间中),并且你想要使用的类也不在一个命名空间中(也就是说也在根命名空间中),那么使用use就没有意义了,因为代码在没有它的情况下也会工作。
Composer与此无关,也没有任何其他的自动加载。这是PHP自己的工作方式。

相关问题