命名空间不起作用,使用 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' 未找到
我做错了什么?
如果 class 名称是正确的,您就不会收到此错误消息:
Class 'Trap' not found
但是这个
Class 'Shorty\Models\Trap' not found
没有提及完全限定的 class 名称(包括它的命名空间)告诉我您缺少 class 的代码既没有 namespace
语句,也没有使用 use
,导入这个 "Trap" class.
或者更准确地说:
这段代码会报错 "Trap" class.
Trap::leftJoin();
此代码会抱怨缺少 "Shorty\Models\Trap" class。
\Shorty\Models\Trap::leftJoin();
还有这个:
use Shorty\Models\Trap;
Trap::leftJoin();
或者这个:
namespace Shorty\Models;
Trap::leftJoin();
当 PHP 抱怨 class 不存在时,它总是显示完全评估的最终名称 class,在别名、相对名称空间间接寻址和其他内容之后。
我正在使用 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' 未找到
我做错了什么?
如果 class 名称是正确的,您就不会收到此错误消息:
Class 'Trap' not found
但是这个
Class 'Shorty\Models\Trap' not found
没有提及完全限定的 class 名称(包括它的命名空间)告诉我您缺少 class 的代码既没有 namespace
语句,也没有使用 use
,导入这个 "Trap" class.
或者更准确地说:
这段代码会报错 "Trap" class.
Trap::leftJoin();
此代码会抱怨缺少 "Shorty\Models\Trap" class。
\Shorty\Models\Trap::leftJoin();
还有这个:
use Shorty\Models\Trap;
Trap::leftJoin();
或者这个:
namespace Shorty\Models;
Trap::leftJoin();
当 PHP 抱怨 class 不存在时,它总是显示完全评估的最终名称 class,在别名、相对名称空间间接寻址和其他内容之后。