Controller action dependency injection in Zend Framework 1 using Laravel's IoC container.
579
1
0
Package Data
Maintainer Username: jeroenvandergeer
Maintainer Contact: jeroen@vandergeer.eu (Jeroen van der Geer)
Package Create Date: 2015-06-20
Package Last Update: 2015-11-05
Language: PHP
License: Unknown
Last Refreshed: 2024-11-29 15:03:43
Package Statistics
Total Downloads: 579
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 1
Total Watchers: 0
Total Forks: 1
Total Open Issues: 0

#ZF-IoC

Controller action dependency injection in Zend Framework 1.

Does not have the framework as a composer dependency to support legacy projects (as that is the only reason this package exists).

Currently requires PHP 5.4+ (as required by illuminate/container 5.0)

composer require jeroenvandergeer/zf-ioc
// Container of choice, can be any Laravel compatible container
$container = new \Illuminate\Container\Container();

// Build dispatcher with IoC container
$dispatcher = new \Jeroenvandergeer\ZfIoc\Dispatcher($container);

// Set / replace the dispatcher
$frontController = \Zend_Controller_Front::getInstance();
$frontController->setDispatcher($dispatcher);

// Optionally register the container with the Zend registry for global binding
\Zend_Registry::set('container', $container);

// Register binding
$container->bind('\App\FooInterface', function($container){
    return new \App\Foo($container['\App\Bar']);
});

Example #1

public function indexAction(\App\FooInterface $foo) 
{
    var_dump($foo);    
}
object(App\Foo)
  public 'bar' => 
    object(App\Bar)

Example #2

public function indexAction() 
{
    $container = $this->getInvokeArg('container');
    var_dump($container->make('\App\Foo'));
}
object(App\Foo)
  public 'bar' => 
    object(App\Bar)