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