在我的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;重复
有没有办法处理错误?
答案 0 :(得分:29)
如果您不在命名空间内(即您在根命名空间中),并且您要使用的类也不在命名空间中(即也在根命名空间中),那么使用use
使没有意义,因为没有它,代码将工作相同。您没有使用此声明导入任何内容。
Composer与此无关,也没有任何其他自动加载。这就是PHP本身的工作方式。