Пользовательский провайдер Laravel 5.1 не найден

Я пытаюсь разработать свой первый пакет, но я уже пытаюсь сделать это. Я следовал двум урокам и сделал все точно так, как описано, однако я получаю:

Класс ‘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 я зашел в корневую папку своего проекта и сделал композитор дамп-автозагрузка
Также я убедился, что я добавил 'Krenor\Ldap\LdapServiceProvider' поставщикам
массив в /config/app.php.

Я что-то здесь упускаю?

2

Решение

(прости я плохо знаю английский…)

ваш раздел автозагрузки (в composer.json) имеет неверный путь

Линия:

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

Должно быть

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

Это для composer.json внутри вашего пакета в разработке. После этого, когда вы загружаете в packagist (или альтернативный вариант) и устанавливаете их вместе с кем-либо, пространство имен будет указывать на «src», но вам не нужно писать это … Composer сделает это автоматически.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]