0

我在我的 Laravel 4 包之一中加载类时遇到问题。我收到常见的“找不到类”错误,当composer.json没有正确的命名空间路径映射时会发生这种错误。我已尝试将所有内容添加到composer.json文件中,但似乎没有任何效果,not psr-0, nor classmap, nor 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;
4

1 回答 1

2

如果您正在这样做php artisan dump-autoload,您可以看到所有类都映射到文件中vendor/composer/autoload_classmap.php,并带有其正确的命名空间。在那里找到你的类并使用正确的命名空间。

于 2013-10-11T08:48:57.140 回答