public function testDefinition()
 {
     $definition = new Definition();
     $definition->setClass('Foo');
     $definition->setArguments([1, 2, 3]);
     $this->assertEquals('Foo', $definition->getClass());
     $this->assertEquals([1, 2, 3], $definition->getArguments());
 }
Beispiel #2
0
 private function parseDefinition($id, $service)
 {
     $definition = new Definition($id);
     if (isset($service['synthetic'])) {
         $definition->setSynthetic($service['synthetic']);
     }
     if (isset($service['class'])) {
         $definition->setClass($service['class']);
     }
     if (isset($service['scope'])) {
         $definition->setScope($service['scope']);
     }
     if (isset($service['lazy'])) {
         $definition->setLazy($service['lazy']);
     }
     if (isset($service['arguments'])) {
         $definition->setArguments($service['arguments']);
     }
     if (isset($service['calls'])) {
         $definition->addCalls($service['calls']);
     }
     if (isset($service['configurator'])) {
         $definition->addConfigurator($service['configurator']);
     }
     if (isset($service['factory'])) {
         $definition->setFactory($service['factory']);
     }
     if (isset($service['tags'])) {
         $definition->setTags($service['tags']);
     }
     if (isset($service['aspects'])) {
         $definition->setAspects($service['aspects']);
     }
     return $definition;
 }
 public function process(Definition $serviceConf, array $tags, \Pimple $container)
 {
     foreach ($tags as $tag) {
         if (strtolower($tag['name']) === 'konfigurator.event_listener') {
             $container[$this->dispatcher] = $container->extend($this->dispatcher, function ($dispatcher, $c) use($serviceConf, $tag) {
                 $dispatcher->addListener($tag['event'], function () use($serviceConf, $tag, $c) {
                     $service = $serviceConf->getName();
                     $method = $tag['method'];
                     if (isset($c[$service])) {
                         return call_user_func_array(array($c[$service], $method), func_get_args());
                     }
                     return false;
                 });
                 return $dispatcher;
             });
         }
     }
 }
 private function parseDefinition($id, $service)
 {
     $definition = new Definition();
     if (isset($service['class'])) {
         $definition->setClass($service['class']);
     }
     if (isset($service['arguments'])) {
         $definition->setArguments($this->resolveServices($service['arguments']));
     }
     $this->container['services'][$id] = $definition;
 }
Beispiel #5
0
 public function testDefinition()
 {
     $definition = new Definition('Bar');
     $definition->setClass('Foo');
     static::assertEquals('Foo', $definition->getClass());
     $arguments = array(1, 2, 3);
     static::assertFalse($definition->hasArguments());
     $definition->setArguments($arguments);
     static::assertTrue($definition->hasArguments());
     static::assertEquals($arguments, $definition->getArguments());
     $calls = array(array('method', array(1, 2)));
     static::assertFalse($definition->hasCalls());
     $definition->addCalls($calls);
     static::assertTrue($definition->hasCalls());
     static::assertEquals($calls, $definition->getCalls());
 }
Beispiel #6
0
 public function createInstance(Definition $serviceConf, $container)
 {
     // decode the argument list
     $params = (array) $this->normalize($serviceConf->getArguments(), $container);
     if ($serviceConf->hasFactory()) {
         $instance = $this->createFromFactory($serviceConf->getFactory(), $params, $container);
     } else {
         $class = new \ReflectionClass($serviceConf->getClass());
         // create the instance
         $instance = $class->newInstanceArgs($params);
     }
     return $instance;
 }