Laravel定制包加载问题

时间:2016-05-04 07:05:58

标签: php laravel composer-php psr-4

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

Error class 'Something\HttpRequest\HttpRequestServiceProvider' not found

目前它只有一个文件,位于" vendor / something / 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()
    {

    }
}

所以基本上它只是Laravel生成的一个。我怀疑这是问题的根源,但谁知道呢。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在任何地方双重检查名称空间。

不要忘记将课程添加到composer.jsom,以便Laravel可以autoload

"autoload": {
    "classmap": [
        "database",
        "app/custom"
    ],
    "files": [
        "app/someFolder/customHelpers.php"
    ]

执行此操作后运行composer dumpauto。如果它不起作用,请尝试运行composer dumpauto -o(带-o标志),有时会有所帮助。

<强>更新

当您将软件包上传到packagist并使用composer进行调整时,您需要将autoload部分添加到您的软件包composer.json,例如:

"autoload": {
    "psr-4": {
        "YourName\\YourPackage\\": "src/"
    }
}