我正在尝试开发我的第一个包,但我已经很难尝试这样做了。我已经按照两个教程完成了所有内容,但正如我所说:
未找到类'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中的数组。
我在这里错过了什么吗?
答案 0 :(得分:0)
(对不起,我的英语非常糟糕......)
您的自动加载部分(在composer.json中)路径错误
该行:
"Krenor\\Ldap\\": "src/"
必须
"Krenor\\Ldap\\": "packages/krenor/ldap-auth/src"
这是针对您的包中的composer.json开发的。之后,当您上传到packagist(或替代)并且您或任何人安装它们时,命名空间将指向“src”,但您不需要写这个... Composer将自动执行。