如何在laravel中注册服务提供商

时间:2016-12-26 15:20:06

标签: php laravel composer-php

我试图在laravel 5.3安装中为我的应用程序构建自己的代码存储库。我在laravel安装目录的根文件夹中创建了以下文件夹Nitseditor,然后将以下内容更改为composer.json

"psr-4": {
        "App\\": "app/",
        "NitsEditor\\": "NitsEditor/"
    }

我在提供商文件夹中创建了一个服务提供商,即Nitseditor\Providers\DomainServiceProvider

namespace Nitseditor\Providers;

use Illuminate\Support\ServiceProvider;

class DomainServiceProvider extends ServiceProvider {

    /**
     * Bootstrap the application services.
     *
     * @return void
     */

    public function boot()
    {
        //
    }

    /**
     * Register to check domain subscription status
     *
     * @return void
     */

    public function register()
    {
        $this->checkDomainName();
        $this->app->singleton('domain', function()
        {
            return $this->domain;
        });
    }

    /**
     * Checking domain status
     */
    public function checkDomainName()
    {
        $domain = $_SERVER['HTTP_HOST'];
        return $domain;
    }

}

然后我在config\app.php

中更改了以下内容
/*
 * Nitseditor Service Providers...
*/

Nitseditor\Providers\DomainServiceProvider::class

然后我做了composer dump-autoload

我得到FatalThrowableError以下是截图

enter image description here

帮帮我。

4 个答案:

答案 0 :(得分:0)

app.php删除提供程序,运行composer dumpauto命令,将其返回app.php

如果名称空间正确,这将有效。

答案 1 :(得分:0)

据我说,你应该清除你的缓存。

请按照以下步骤操作:

php artisan config:clear
php artisan config:cache
composer dump-autoload

答案 2 :(得分:0)

我键入了“NitsEditor \”:“NitsEditor /”但它应该是“Nitseditor”:“Nitseditor /”大写小写错误,它解决了我的问题。

答案 3 :(得分:0)

发布在 app.php 中添加的 Service Provider

php artisan vendor:publish

此外,如果您添加的目录中有 helpers.php,请确保在 composer.json 中包含该文件

举个例子

"autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/",
            "Spatie\\Permission\\": "Spatie/",
            "Kalnoy\\Nestedset\\": "Kalnoy/"
        },
        "files": [
            "Spatie/helpers.php"
        ]
    },