useAutowiring() public method

Enabled by default.
public useAutowiring ( boolean $bool ) : ContainerBuilder
$bool boolean
return ContainerBuilder
Example #1
1
 /**
  * @param $env
  * @return Container
  */
 public function getContainer($env)
 {
     $container = null;
     $builder = new ContainerBuilder(Container::class);
     //        $builder = new ContainerBuilder();
     foreach (glob(APP_HOME . '/conf/conf.d/*.conf.php') as $filename) {
         $builder->addDefinitions($filename);
     }
     $definitionsEnumFile = APP_HOME . '/conf/config.' . $env . '.php';
     if (file_exists($definitionsEnumFile)) {
         $builder->addDefinitions($definitionsEnumFile);
     }
     $builder->useAnnotations(false);
     $builder->useAutowiring(true);
     switch ($env) {
         case EnvironmentEnum::DEV:
             $builder->setDefinitionCache(new ArrayCache());
             break;
         case EnvironmentEnum::PROD:
         default:
             $cache = $this->getCache();
             $builder->setDefinitionCache($cache);
             $builder->writeProxiesToFile(true, APP_HOME . '/var/cache/proxies');
             break;
     }
     $container = $builder->build();
     return $container;
 }
 /**
  * @inheritDoc
  */
 protected function setUp()
 {
     parent::setUp();
     $builder = new ContainerBuilder();
     $builder->useAutowiring(true);
     $builder->useAnnotations(true);
     $this->container = $builder->build();
 }
Example #3
0
 /**
  * @throws \Exception
  */
 protected function __construct()
 {
     $builder = new ContainerBuilder();
     $builder->useAutowiring(false);
     $builder->useAnnotations(false);
     $configFile = sprintf(dirname(dirname(dirname(dirname(dirname(__DIR__))))) . '/config/' . self::CONFIG_FILE_PATTERN, self::$env);
     if (!file_exists($configFile)) {
         throw new \Exception(sprintf("The config file expected '%s' doesn't exist", $configFile));
     }
     $builder->addDefinitions($configFile);
     $container = $builder->build();
     self::$instance = $container;
 }
 /**
  * Configure container builder.
  *
  * @param \DI\ContainerBuilder $containerBuilder
  * @param array                $settings
  *
  * @return \DI\ContainerBuilder
  */
 private static function configureContainerBuilder(DIContainerBuilder $containerBuilder, array $settings)
 {
     if (array_key_exists('use_autowiring', $settings)) {
         $containerBuilder->useAutowiring((bool) $settings['use_autowiring']);
     }
     if (array_key_exists('use_annotations', $settings)) {
         $containerBuilder->useAnnotations((bool) $settings['use_annotations']);
     }
     if (array_key_exists('ignore_phpdoc_errors', $settings)) {
         $containerBuilder->ignorePhpDocErrors((bool) $settings['ignore_phpdoc_errors']);
     }
     return $containerBuilder;
 }
 public function register(Application $app)
 {
     $app['di.definitions'] = array();
     $app['di.options'] = array();
     $app['di.default_options'] = array('cache' => null, 'container_class' => 'DI\\Container', 'useAnnotations' => true, 'useAutowiring' => true, 'writeProxiesToFile' => false, 'proxyDirectory' => null, 'silexAliases' => true, 'injectOnControllers' => true);
     $app['di'] = $app->share(function () use($app) {
         $acclimator = new ContainerAcclimator();
         $container = new CompositeContainer();
         $builder = $app['di.builder'];
         $builder->wrapContainer($container);
         $phpdi = $builder->build();
         $phpdi->set('Silex\\Application', $app);
         $container->addContainer($acclimator->acclimate($phpdi));
         $container->addContainer($acclimator->acclimate($app));
         return $container;
     });
     $app['di.builder'] = $app->share(function () use($app) {
         $options = $app['di.options_merged'];
         $builder = new ContainerBuilder($options['container_class']);
         $builder->useAnnotations((bool) $options['useAnnotations']);
         $builder->useAutowiring((bool) $options['useAutowiring']);
         $builder->writeProxiesToFile($options['writeProxiesToFile'], $options['proxyDirectory']);
         if ($options['cache']) {
             $builder->setDefinitionCache($options['cache']);
         }
         $definitions = (array) $app['di.definitions'];
         if ($options['silexAliases']) {
             $definitions[] = __DIR__ . '/config.php';
         }
         foreach ($definitions as $file) {
             $builder->addDefinitions($file);
         }
         return $builder;
     });
     $app['di.raw'] = $app->share(function () use($app) {
         return $app['di']->get($app['di.options_merged']['container_class']);
     });
     $app['di.options_merged'] = $app->share(function () use($app) {
         return array_merge($app['di.default_options'], $app['di.options']);
     });
     $app['resolver'] = $app->share($app->extend('resolver', function ($resolver, $app) {
         if ($app['di.options_merged']['injectOnControllers']) {
             return new PhpDiControllerResolver($app['di.raw'], $resolver);
         }
         return $resolver;
     }));
 }
Example #6
0
<?php

use DI\ContainerBuilder;
return call_user_func(function () {
    $builder = new ContainerBuilder();
    $builder->useAnnotations(false);
    $builder->useAutowiring(false);
    $builder->addDefinitions(['cache_path' => '/tmp/cache', CacheProvider::class => \DI\object(FileCache::class)->constructorParameter('path', \DI\get('cache_path')), UserRepository::class => \DI\object()->constructorParameter('cache', \DI\get(CacheProvider::class))]);
    return $builder->build();
});
Example #7
0
 /**
  * @return \DI\Container
  */
 private function getContainer()
 {
     $containerBuilder = new ContainerBuilder();
     $containerBuilder->addDefinitions(array_merge_recursive(require $this->frameworkConfigLocation, require $this->diConfigFile));
     $containerBuilder->addDefinitions(['workshopTitle' => $this->workshopTitle, 'exercises' => $this->exercises, 'workshopLogo' => $this->logo, 'bgColour' => $this->bgColour, 'fgColour' => $this->fgColour]);
     $containerBuilder->useAutowiring(false);
     $containerBuilder->useAnnotations(false);
     return $containerBuilder->build();
 }
Example #8
0
 /**
  * Makes sure the dependency injection is working with annotations
  */
 public function testContainerOnInjectWorks()
 {
     $builder = new ContainerBuilder();
     $builder->useAutowiring(false);
     $builder->useAnnotations(true);
     $container = $builder->build();
     $router = new Router($container);
     $result = $router->map(new Route('/', DummyController::class, 'index'), new Route('/di/injected', DummyController::class, 'injected'))->run('/di/injected');
     $this->assertEquals('stdClass', $result);
 }
Example #9
0
 /**
  * Run the app
  */
 public function run()
 {
     $containerBuilder = new ContainerBuilder();
     $containerBuilder->addDefinitions(__DIR__ . '/../app/config.php');
     $containerBuilder->addDefinitions($this->diConfigFile);
     $containerBuilder->addDefinitions(array_merge(['workshopTitle' => $this->workshopTitle, 'exercises' => $this->exercises, 'workshopLogo' => $this->logo, 'bgColour' => $this->bgColour, 'fgColour' => $this->fgColour]));
     $containerBuilder->useAutowiring(false);
     $containerBuilder->useAnnotations(false);
     $container = $containerBuilder->build();
     foreach ($this->exercises as $exercise) {
         if (false === $container->has($exercise)) {
             throw new \RuntimeException(sprintf('No DI config found for exercise: "%s". Register a factory.', $exercise));
         }
     }
     $checkRepository = $container->get(CheckRepository::class);
     array_walk($this->checks, function (CheckInterface $check) use($checkRepository) {
         $checkRepository->registerCheck($check);
     });
     try {
         $exitCode = $container->get(CommandRouter::class)->route();
     } catch (MissingArgumentException $e) {
         $container->get(OutputInterface::class)->printError(sprintf('Argument%s: "%s" %s missing!', count($e->getMissingArguments()) > 1 ? 's' : '', implode('", "', $e->getMissingArguments()), count($e->getMissingArguments()) > 1 ? 'are' : 'is'));
         return 1;
     }
     return $exitCode;
 }
Example #10
0
<?php

use DI\ContainerBuilder;
use Doctrine\Common\Cache\ArrayCache;
require __DIR__ . '/../vendor/autoload.php';
$containerBuilder = new ContainerBuilder();
$containerBuilder->setDefinitionCache(new ArrayCache());
$containerBuilder->addDefinitions(__DIR__ . '/di-config.php');
$containerBuilder->useAutowiring(true);
$container = $containerBuilder->build();
return $container;