function adventure_tours_init_di_callback($di, $config) { if ($config) { foreach ($config as $key => $value) { $instance = null; $class = ''; $typeof = gettype($value); switch ($typeof) { case 'string': $class = $value; break; case 'array': $class = array_shift($value); break; default: $instance = $value; $class = get_class($instance); break; } $diKey = is_string($key) ? $key : $class; if (isset($di[$diKey])) { continue; } $di[$diKey] = $instance ? $instance : JuiceDefinition::create($class, $value); } } }
public function testDefinitionBuilderMethodCalls() { $def = new JuiceDefinition('SumTestService'); $def->call('add'); $def->call('add', array(2)); $container = new JuiceContainer(); $service = $container->build($def); $this->assertEquals(3, $service->result); }