Я пытаюсь разработать свой первый пакет, но я уже пытаюсь сделать это. Я следовал двум урокам и сделал все точно так, как описано, однако я получаю:
Класс ‘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.
Я что-то здесь упускаю?
(прости я плохо знаю английский…)
ваш раздел автозагрузки (в composer.json) имеет неверный путь
Линия:
"Krenor\\Ldap\\": "src/"
Должно быть
"Krenor\\Ldap\\": "packages/krenor/ldap-auth/src"
Это для composer.json внутри вашего пакета в разработке. После этого, когда вы загружаете в packagist (или альтернативный вариант) и устанавливаете их вместе с кем-либо, пространство имен будет указывать на «src», но вам не нужно писать это … Composer сделает это автоматически.
Других решений пока нет …