Пример #1
0
 /**
  *
  * Tests that a class can be instantiated through the Container.
  *
  * @param string $class The expected class.
  *
  * @return null
  *
  * @dataProvider provideNewInstance
  *
  */
 public function testNewInstance($class, array $params = array(), array $setter = array())
 {
     if (!$class) {
         $this->markTestSkipped('No class name passed for testNewInstance().');
     }
     $this->assertInstanceOf($class, $this->di->newInstance($class, $params, $setter));
 }
Пример #2
0
 public function testNewInstanceWithOverride()
 {
     $instance = $this->container->newInstance('Aura\\Di\\MockParentClass', ['foo' => 'dib']);
     $expect = 'dib';
     $actual = $instance->getFoo();
     $this->assertSame($expect, $actual);
 }
Пример #3
0
 /**
  *
  * Creates a new DI container, adds pre-existing service objects, applies
  * Config classes to define() services, locks the container, and applies
  * the Config instances to modify() services.
  *
  * @param array $services Pre-existing service objects to set into the
  * container.
  *
  * @param array $config_classes A list of Config classes to instantiate and
  * invoke for configuring the container.
  *
  * @param bool $auto_resolve Enable or disable auto-resolve after the
  * define() step?
  *
  * @return Container
  *
  */
 public function newInstance(array $services = array(), array $config_classes = array(), $auto_resolve = self::ENABLE_AUTO_RESOLVE)
 {
     $di = new Container(new Factory());
     $di->setAutoResolve($auto_resolve);
     foreach ($services as $key => $val) {
         $di->set($key, $val);
     }
     $configs = array();
     foreach ($config_classes as $class) {
         $config = $di->newInstance($class);
         $config->define($di);
         $configs[] = $config;
     }
     $di->lock();
     foreach ($configs as $config) {
         $config->modify($di);
     }
     return $di;
 }