public function testBuildFromArray()
 {
     $service = ['MyService' => ['aliases' => ['Service123', 'Service456'], 'factory' => function (ServiceLocatorInterface $serviceLocator) {
         return new stdClass();
     }, 'shared' => false]];
     $configuration = \Alien\Di\Configuration::createFromArray($service);
     $sl = $this->serviceLocator;
     $this->assertEquals('MyService', $configuration->getName());
     $this->assertEquals(false, $configuration->isShared());
     $this->assertEquals(['Service123', 'Service456'], $configuration->getAliases());
     $sl->register($configuration);
     $this->assertInstanceOf('stdClass', $sl->get('MyService'));
 }
Exemplo n.º 2
0
 /**
  * Creates new configuration corresponding given object.
  *
  * If none <code>$name</code> is given, class name (type) is used as identifier.
  *
  * All configuration values are set to default.
  *
  * @param mixed $object instance of object to create configuration for.
  * @param string $name [optional] service name.
  * @return ServiceConfigurationInterface
  */
 protected function createConfiguration($object, $name = null)
 {
     if (!is_object($object)) {
         throw new InvalidArgumentException(sprintf("Invalid type given: %s.", gettype($object)));
     }
     $name = $name ?: get_class($object);
     $config = [$name => ['factory' => $object]];
     return Configuration::createFromArray($config);
 }