Basic controller dependency injection in ZF1 with League\Container

1.1.0 2015-07-02 16:57 UTC


Latest Stable Version License Build Status Code Coverage Scrutinizer Code Quality


It's a simple glue layer which injects services registered in a League\Container into a ZF1 controller.

Heavily based on @weierophinney's now-many-moons-ago blog post "A Simple Resource Injector for ZF Action Controllers".


  1. Install the Composer package:

    composer require adamlundrigan/ldc-zf1-di-league-container:1.*@stable
  2. Register the helper in your ZF1 application bootstrap:

    protected function _initContainer()
        $container = new League\Container\Container();
        // Fill your container    
        return $container;
    protected function _initContainerResourceInjector()
            new \LdcZf1DiLeagueContainer\DependencyInjector()
  3. In each controller, define a list of dependencies to inject:

    class FooController extends Zend_Controller_Action
        public $dependencies = array(

    If you use a non-numeric key for any value of $dependencies the injector will use that as the controller property to inject into.

  4. Profit! The injector will create a public property on the controller instance for each named service.