【发布时间】:2013-10-19 05:22:22
【问题描述】:
在我的 Laravel 4 包之一中加载类时遇到问题。我收到常见的“找不到类”错误,当composer.json 没有正确的命名空间路径映射时会发生这种错误。我尝试将所有内容添加到 composer.json 文件中,但似乎没有任何效果,psr-0、classmap 和 files 都没有。但是,如果我在声明新对象时尝试使用类的完整路径:
$foo=new Myvendor\Mypackage\Domain\Models\Mymodel;
效果很好。但是,我不想在每次需要对象时都声明整个路径。具有完整文件路径的类有效这一事实表明,我已经非常接近解决方案了。
已编辑:一些代码
我的班级,相对于包根目录位于:src\Myvendor\Mypackage\Domain\Models\Complainant.php
<?php namespace Myvendor\Mypackage\Domain\Models;
class Complainant {
public $fname;
public $lname;
}
我的composer.json 文件的一部分:
"autoload": {
"psr-0": {
"Myvendor\\Mypackage": "src/"
}
},
此代码不起作用:
$var=new Complainant;
虽然以下是:
$c=new Myvendor\Mypackage\Domain\Models\Complainant;
【问题讨论】:
-
你更新composer.json后做了composer dump吗?
-
是的,我每次更改composed.json时都使用
composer dump-autoload -
您可能使用了错误的命名空间。显示实际代码和实际错误。这个问题不是很有帮助。
-
好吧,一切看起来都很好,但你说唯一的问题是什么时候不使用完整的命名空间类名?确定你在“使用”时不只是出错了吗?
-
@Robbo 我添加了一些我认为与我的问题相关的代码
标签: php json laravel laravel-4 composer-php