名称间距不起作用,使用composer psr-4


Namespacing not working, using composer psr-4

我使用的是slim框架、composer和psr-4自动加载。

这是在作曲家:

"Shorty''":"app/Shorty"

注意:我在"Shorty''":"app/Shorty/Models" 上也尝试了上述操作

董事会结构:app/Shorty/Models/Trap.php

内部Trap.php:

namespace Shorty'Models;
use Illuminate'Database'Eloquent'Model as Eloquent;
    class Trap{
    #code here
    }

在我的路线上:

$users=Trap::leftJoin('users', function($join){

我得到:类"陷阱"未找到

我做错了什么?

如果类名是正确的,则不会收到以下错误消息:

Class 'Trap' not found

但是这个

Class 'Shorty'Models'Trap' not found

没有提到完全限定的类名,包括它的名称空间告诉我,缺少该类的代码既没有namespace语句,也没有使用use导入来导入这个"陷阱"类。

或者更准确地说:

此代码将抱怨缺少"Trap"类。

Trap::leftJoin();

此代码会抱怨缺少"Shorty''Models''Trap"类。

'Shorty'Models'Trap::leftJoin();

以及这个:

use Shorty'Models'Trap;
Trap::leftJoin();

或者这个:

namespace Shorty'Models;
Trap::leftJoin();

当PHP抱怨某个类不存在时,它总是在别名、相对名称空间间接寻址等后面显示该类的完全求值的最终名称。