我有一个小问题。我正在尝试制作一个Laravel包,但它无法加载。每当我尝试在config/app.php中添加它的提供者时,我都会得到:
Error class 'SomethingHttpRequestHttpRequestServiceProvider' not found
目前,它只有一个文件,位于"vendor/ssomething/http request/src/HttpRequestServiceProvider"中。我怀疑这条路有什么关系,但我不确定。
我试过
composer dump-autoload
但它没有被映射。
编辑:
我还将它发布给了packagist,并通过composer安装它,以检查它是否有效(好吧,它不是:D)。
服务提供商存根如下所示:
<?php
namespace SomethingHttpRequest;
use IlluminateSupportServiceProvider;
class HttpRequestServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
}
所以基本上,这只是拉拉威尔产生的一个。我怀疑这是问题的根源,但谁知道呢。
有什么想法吗?
仔细检查各处的命名空间。
别忘了把你的类添加到composer.jsom
中,这样Laravel就可以autoload
了:
"autoload": {
"classmap": [
"database",
"app/custom"
],
"files": [
"app/someFolder/customHelpers.php"
]
然后运行composer dumpauto
。如果不起作用,请尝试运行composer dumpauto -o
(带有-o
标志),有时会有所帮助。
更新
当您将包上传到packagegist并使用composer进行安装时,您需要将autoload
部分添加到包的composer.json
中,例如:
"autoload": {
"psr-4": {
"YourName\YourPackage\": "src/"
}
}