Skip to content

Instantly share code, notes, and snippets.

@Djuki
Last active December 9, 2015 23:39
Show Gist options
  • Save Djuki/4345892 to your computer and use it in GitHub Desktop.
Save Djuki/4345892 to your computer and use it in GitHub Desktop.
Primer korišćenja IoC containera uz setter metode
<?php
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
class Tractor
{
/**
* Engine
*
* @var \Model\Engine
*/
private $engine;
/**
* Seter method for Engine
*
* @param \Model\Engine $engine
*/
public function setEngine(\Model\Engine $engine)
{
$this->engine = $engine;
}
}
// Register Engine class and set parameter for constructor
$container = new ContainerBuilder();
// Register Tractor object and define param with Engine class for serEngine method
$container->register('my.tractor', '\\Model\\Tractor')
->addMethodCall('setEngine', array(new Reference('my.engine')));
// Register param for Engine constructor
$container->register('my.engine', '\\Model\\Engine')
->addArgument(1800);
// IoC container will return object registered as my.tractor
$traktor = $container->get('my.tractor');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment