未找到Laravel 5.1自定义提供程序

时间:2015-08-10 11:32:24

标签: php laravel-5 composer-php service-provider

我正在尝试开发我的第一个包,但我已经很难尝试这样做了。我已经按照两个教程完成了所有内容,但正如我所说:

  

未找到类'Krenor \ Ldap \ LdapServiceProvider

我的文件夹结构:

project
- app  
- ...
- packages
-- krenor
--- ldap-auth
---- src
----- LdapServiceProvider.php (within src/)
---- composer.json (outside src/)

我的作曲家文件如下所示:

{
    "name": "krenor/ldap-auth",
    "description": "Authentication via LDAP and Laravel 5.1.x",
    "type": "project",
    "license": "MIT",
    "authors": [
        {"name": "MyName","email": "MyMail"}
    ],
    "require": {
        "php": ">=5.5",
        "laravel/framework": "5.1.*"
    },
    "autoload": {
      "psr-4": {
        "Krenor\\Ldap\\": "src/"
      }
    }
}

我的提供者档案:

<?php

namespace Krenor\Ldap;

use Illuminate\Support\ServiceProvider;

class LdapServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        dd('I am alive');
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        dd('I am alive, too!');
    }
}

创建json文件后,我进入了我的项目根文件夹并执行了 composer dump-autoload
此外,我已确保将'Krenor\Ldap\LdapServiceProvider'添加到提供商中 /config/app.php中的数组。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

(对不起,我的英语非常糟糕......)

您的自动加载部分(在composer.json中)路径错误

该行:

"Krenor\\Ldap\\": "src/"

必须

"Krenor\\Ldap\\": "packages/krenor/ldap-auth/src"

这是针对您的包中的composer.json开发的。之后,当您上传到packagist(或替代)并且您或任何人安装它们时,命名空间将指向“src”,但您不需要写这个... Composer将自动执行。