Laravel自定义包加载问题


Laravel custom package loading issue

我有一个小问题。我正在尝试制作一个Laravel包,但它无法加载。每当我尝试在config/app.php中添加它的提供者时,我都会得到:

Error class 'Something'HttpRequest'HttpRequestServiceProvider' not found

目前,它只有一个文件,位于"vendor/ssomething/http request/src/HttpRequestServiceProvider"中。我怀疑这条路有什么关系,但我不确定。

我试过

composer dump-autoload

但它没有被映射。

编辑:

我还将它发布给了packagist,并通过composer安装它,以检查它是否有效(好吧,它不是:D)。

服务提供商存根如下所示:

<?php
namespace Something'HttpRequest;
use Illuminate'Support'ServiceProvider;
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/"
    }
}