Laravel 4包没有正确加载类路径

时间:2013-10-11 07:45:33

标签: php json laravel laravel-4 composer-php

我在我的一个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;

1 个答案:

答案 0 :(得分:2)

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