>我在Laravel 4软件包中加载类时遇到问题。我收到常见的"找不到类"错误,当composer.json
没有正确的命名空间路径映射时会发生该错误。我尝试将所有内容添加到composer.json
文件中,但似乎没有任何效果,不是psr-0
,也不是classmap
,也不是files
。但是,如果我在声明新对象时尝试使用类的完整路径:
$foo=new MyvendorMypackageDomainModelsMymodel;
效果很好。但是,我不想每次需要对象时都必须声明整个路径。具有完整文件路径的类工作的事实表明我非常接近解决方案。
已编辑:一些代码
我的类,位于: 相对于包根目录srcMyvendorMypackageDomainModelsComplainant.php
<?php namespace MyvendorMypackageDomainModels;
class Complainant {
public $fname;
public $lname;
}
我的composer.json
文件的一部分:
"autoload": {
"psr-0": {
"Myvendor\Mypackage": "src/"
}
},
此代码不起作用:
$var=new Complainant;
虽然以下内容确实如此:
$c=new MyvendorMypackageDomainModelsComplainant;
如果你正在做php artisan dump-autoload
,你可以看到所有类都映射到文件vendor/composer/autoload_classmap.php
中,并带有它们正确的命名空间。在那里找到你的类并使用正确的命名空间。