Laravel/Composer:具有非复合名称的use语句

Chr*_*itz 18 php composer-php laravel-4

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

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

    ],
    ...
},
Run Code Online (Sandbox Code Playgroud)

use在我的ExtendedUserController中有一个语句引用CustomerLinks:

<?php

...
use CustomerLinks;
...

class ExtendedUserController extends UserController {
Run Code Online (Sandbox Code Playgroud)

我的理解是,由于composer文件中的autoload属性在类映射中有app/models,这意味着我应该能够在use CustomerLinks没有名称空间前缀的情况下使用.

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

The use statement with non-compound name 'CustomerLinks' has no effect
Run Code Online (Sandbox Code Playgroud)

该错误指向use CustomerLinks行扩展用户控制器.

当我做的时候composer dump-autoload一切正常,但是当我必须遵循这个模式时,它变得非常恼人

进行更改 - >转储自动加载 - >刷新浏览器 - >重复

有没有办法处理错误?

Sve*_*ven 29

如果您不在命名空间内(即您在根命名空间中),并且您要使用的类也不在命名空间中(即也在根命名空间中),那么使用use没有意义,因为代码将起作用如果没有它.您没有使用此声明导入任何内容.

Composer与此无关,也没有任何其他自动加载.这就是PHP本身的工作原理.

  • 最后一句话没有帮助斯文.我们都在学习连续体的某个地方 (11认同)
  • 我认为关于我们魔术技术的哪一部分负责的信息是有效的信息.如果TO做了某些事情,假设它应该改善永远不会有效的情况,我应该告诉他,他之间的心理联系是错误的.它还允许他使用正确的文档网站来解决相关问题. (5认同)