【发布时间】: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