【问题标题】:Laravel 5.1 custom Provider not found未找到 Laravel 5.1 自定义提供程序
【发布时间】:2015-11-02 07:14:07
【问题描述】:

我正在尝试开发我的第一个软件包,但我已经很难尝试这样做了。我已经按照两个教程完成了所有操作,但是我得到了:

找不到类“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 中的数组。

我错过了什么吗?

【问题讨论】:

  • 你的 LdapServiceProvider.php 文件应该在正确的文件夹下作为命名空间。在这种情况下应该是src/Krenor/Ldap/LdapServiceProvider.php
  • 我的 psr4 部分不是已经用命名空间“Krenor/LDAP”指向 src/ 文件夹吗?
  • 该行指定命名空间Krenor/Ldap 的基目录,即src/。从基线开始,你应该有正确的结构,正如我之前指出的那样。
  • @yangqi 那是 PSR-0,这是完全正确的 PSR-0 配置。

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


【解决方案1】:

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

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

行:

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

必须

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 2021-03-18
    • 1970-01-01
    • 2014-12-01
    • 2021-09-15
    • 2014-12-17
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多