2015-08-10 5 views
2

Я пытаюсь разработать свой первый пакет, но я уже пытаюсь это сделать. Я следовал две обучающие программы и сделать все точно так, как описано, однако я получаю:Laravel 5.1 custom 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/" 
     } 
    } 
} 

И мой Pr ovider Файл:

<?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.

Я что-то упустил?

+0

Ваш файл LdapServiceProvider.php должен находиться в правильной папке в качестве пространства имен. В этом случае должно быть 'src/Krenor/Ldap/LdapServiceProvider.php' – yangqi

+0

Istn't мой раздел psr4, уже указывающий с пространством имен« Krenor/LDAP »в папку src /? – Krenor

+0

эта строка указывает базовый каталог пространства имен 'Krenor/Ldap', который является' src/'. И начиная с базовой линии, у вас должна быть правильная структура, о чем я говорил ранее. – yangqi

ответ

0

(извините мой английский очень плохо ...)

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

Линия:

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

Must Be

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^