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

时间:2014-05-19 18:48:26

标签: php laravel-4 composer-php

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

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

    ],
    ...
},

我的ExtendedUserController中有一个引用use的{​​{1}}语句:

CustomerLinks

我的理解是,由于作曲家文件中的自动加载属性在类图中有app / models,这意味着我应该能够使用<?php ... use CustomerLinks; ... class ExtendedUserController extends UserController { 而不使用名称空间前缀。

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

use CustomerLinks

错误指向The use statement with non-compound name 'CustomerLinks' has no effect 行扩展用户控制器。

当我做use CustomerLinks时,一切正常,但当我必须遵循这种模式时,它会变得非常恼人

  

进行更改 - &gt; dump autoload - &gt;刷新浏览器 - &gt;重复

有没有办法处理错误?

1 个答案:

答案 0 :(得分:29)

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

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