草庐IT

php - Laravel/ Composer : The use statement with non-compound name

coder 2023-06-14 原文

在我的 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

这可行,但每当我更改我的 ExtendedUserControler 并重新加载我的浏览器时,我都会收到错误消息:

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

错误指向 use CustomerLinks 行扩展用户 Controller 。

当我执行 composer dump-autoload 时,一切正常,但当我必须遵循模式时,它变得非常烦人

make a change -> dump autoload -> refresh browser -> repeat

有没有办法处理这个错误?

最佳答案

如果您不在命名空间内(即您在根命名空间中),并且您要使用的类也不在命名空间中(即也在根命名空间中),则使用 use 没有意义,因为没有它,代码也能正常工作。您没有使用此声明导入任何内容。

Composer 与此无关,也与任何其他自动加载无关。这就是 PHP 自身的工作方式。

关于php - Laravel/ Composer : The use statement with non-compound name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745050/

有关php - Laravel/ Composer : The use statement with non-compound name的更多相关文章

随机推荐