Abstract class Dependency Injection


I’m using an abstract base controller:

class ProductController extends Controller{}

I’m trying to get the container injected into the constructor, but having no luck. I’m using factories for the standard controllers for DI which works and I would be happy to only inject what I need, but it’s an abstract class so as Slim injects the container by default I thought that would be the solution but it’s not working.

I’m using psr-4 and my Controllers folder is under my app folder.

“autoload”: {
“psr-4”: {
“App\”: “app”,
“Tests\”: “tests”

namespace App\Controllers;

abstract class Controller
protected $logger;

 * Controller constructor.

public function __construct($container) 
    $this->logger = $container->get('Logger');

public function test()


Monolog is in the container and I can use it using normal DI in standard controllers.