我正在为一个包制作一个Laravel ServiceProvider。 该套餐为https://github.com/sumocoders/Teamleader
我收到以下错误
ProviderRepository.php第150行中的FatalErrorException: Class' Notflip \ Teamleader \ TeamleaderServiceProvider'找不到
我不知道我做错了什么,这是我的文件夹结构
我的包中的composer.json
"autoload": {
"psr-4": {
"Notflip\\Teamleader": "src/"
}
}
TeamleaderServiceProvider
<?php namespace Teamleader\Laravel;
use Illuminate\Support\ServiceProvider;
class TeamleaderServiceProvider extends ServiceProvider
{
/**
* Register bindings in the container.
*
* @return void
*/
public function publishes()
{
$this->publishes([
__DIR__.'/Config/config.php' => config_path('teamleader.php'),
]);
}
public function register()
{
$this->app->bind('Teamleader\Laravel', function () {
return new Teamleader(config('teamleader.API_GROUP'), config('teamleader.API_SECRET'), config('teamleader.SSL'));
});
}
}
门面
<?php namespace Teamleader\Laravel\Facade;
class Teamleader extends Facade
{
protected static function getFacadeAccessor()
{
return 'Teamleader';
}
}
在我的 config.php 中,我将以下行添加到提供商
'Notflip\Teamleader\TeamleaderServiceProvider',
这一行是别名
'Teamleader'=> 'Notflip\Teamleader\Facade\Teamleader'
任何人都知道我可能做错了什么?谢谢!我非常接近结果!
答案 0 :(得分:1)
你在composer中的定义缺少初始斜杠,你还没有从root指定src的路径。
"psr-4": {
"\\Notflip\\Teamleader": "notflip/teamleader-laravel/src/"
}
此外,您在TeamleaderServiceProvider顶部的名称空间声明是错误的,应该是:
<?php namespace Notflip\Teamleader;
答案 1 :(得分:0)
在外观中,IOC绑定被命名为错误(错误的情况)
该名称应该是&#39; teamleader&#39;小写。
<强>门面强>
class Teamleader extends Facade
{
protected static function getFacadeAccessor()
{
return 'teamleader';
}
}
服务提供商
<?php namespace Teamleader\Laravel;
use Illuminate\Support\ServiceProvider;
class TeamleaderServiceProvider extends ServiceProvider
{
/**
* Register bindings in the container.
*
* @return void
*/
public function publishes()
{
$this->publishes([
__DIR__.'/Config/config.php' => config_path('teamleader.php'),
]);
}
public function register()
{
$this->app->bind('teamleader', function () {
return new Teamleader(config('teamleader.API_GROUP'), config('teamleader.API_SECRET'), config('teamleader.SSL'));
});
}
}