# Slim3 and league container - problems adding a service provider - Closed

**URL:** <https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259>\
**Category:** Questions\
**Created:** [July 8, 2019, 12:50pm UTC](https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259 "2019-07-08T12:50:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![supervan1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.slimframework.com/supervan1/32/362_2.png) [@supervan1](https://discourse.slimframework.com/u/supervan1)\
**Post date:** [July 8, 2019, 12:50pm UTC](https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259/1 "2019-07-08T12:50:52Z")

</div>

Hi everyone, your guidance will be appreciated. I’m using slim3 with the league/container,

getting error “A service provider must be a fully qualified class name or instance of (\League\Container\ServiceProvider\ServiceProviderInterface)”.

```php
namespace App\Menu\Providers;
use App\Models\Menu;

class MenuDspProvider implements MenuDspProviderInterface
  {
    public function getAllMenu() {
        return Menu::all();
    }
}

```

// File : container.php  
//=================

```auto
$container = new League\Container\Container;

// Autowiring enabled
$container->delegate(new League\Container\ReflectionContainer);

// Core providers
$container->addServiceProvider(new App\Providers\ConfigServiceProvider);
$container->addServiceProvider(new App\Providers\SlimServiceProvider);

// Additionnal providers
foreach ($container->get('config')->get('providers') as $provider) {
    $container->addServiceProvider($provider);
}

```

file: MenuDspServiceProvider  
//========================

```php
namespace App\Providers;

use App\Menu\Providers\MenuDspProvider;
use League\Container\ServiceProvider\AbstractServiceProvider;
//use League\Container\ServiceProvider\BootableServiceProviderInterface;
use App\Views\View as Twig;

class MenuDspServiceProvider extends AbstractServiceProvider {

    protected $provides = [
        MenuDspProvider::class
    ];

    public function register() {

        $container = $this->getContainer();

        $container->share(MenuDspProvider::class, function () use ($container) {
            return new MenuDspProvider(
                    new MenuDspProvider
            );
        });
    }
}

```

---

<div class="post-metadata">

**Author:** ![odan](https://avatars.discourse-cdn.com/v4/letter/o/9de053/32.png) [@odan](https://discourse.slimframework.com/u/odan)\
**Post date:** [July 8, 2019, 5:52pm UTC](https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259/2 "2019-07-08T17:52:57Z")

</div>

Maybe just a typo.

See here: `MenurDspProviderInterface` (Menu… and not Menur…)

---

<div class="post-metadata">

**Author:** ![supervan1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.slimframework.com/supervan1/32/362_2.png) [@supervan1](https://discourse.slimframework.com/u/supervan1)\
**Post date:** [July 8, 2019, 6:21pm UTC](https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259/3 "2019-07-08T18:21:11Z")

</div>

Hi Odan, thanks forgot to fix the typo in the code before it was posted on discourse.

Typo fixed on post, still having the same issue.

---

<div class="post-metadata">

**Author:** ![odan](https://avatars.discourse-cdn.com/v4/letter/o/9de053/32.png) [@odan](https://discourse.slimframework.com/u/odan)\
**Post date:** [July 8, 2019, 6:59pm UTC](https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259/4 "2019-07-08T18:59:59Z")

</div>

The ServiceProviderAggregate::add($provider) failes because one of the given provider does not implement the ServiceProviderInterface.

Make sure that the provider classes:

App\Providers\ConfigServiceProvider  
App\Providers\SlimServiceProvider

… implement the ServiceProviderInterface

```php
class ConfigServiceProviderimplements implements ServiceProviderInterface { ... }
class SlimServiceProvider implements ServiceProviderInterface { ... }

```

---

<div class="post-metadata">

**Author:** ![supervan1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.slimframework.com/supervan1/32/362_2.png) [@supervan1](https://discourse.slimframework.com/u/supervan1)\
**Post date:** [July 9, 2019, 10:41am UTC](https://discourse.slimframework.com/t/slim3-and-league-container-problems-adding-a-service-provider-closed/3259/5 "2019-07-09T10:41:17Z")

</div>

Hi,

Thanks for your feedback.  
Found the problem, it was with the addServiceprovider, had to add the full qualified name. The ConfigServiceProvider implements a BootableServiceProviderInterface
