Esempio n. 1
0
 public static function create(Modules $modules, Bindings $bindings, Singletons $singletons, CodeStorage $storage, Reflection $reflection)
 {
     $pointCuts = new PointCuts();
     $jit = new JustInTimeBinder($bindings);
     $locator = new BindingLocator($bindings, $jit, $reflection);
     $moduleBinder = new ModuleBinder($bindings, $pointCuts);
     $configBinder = new ConfigBinder($bindings);
     $binder = new Binder($moduleBinder, $configBinder, $reflection);
     $builder = new BindingsBuilder($bindings, $modules, $binder, [new LateBindingVisitor($locator), new CircularProviderVisitor($bindings, $jit, $reflection), $marker = new SingletonMarkerVisitor(), new ConstantFoldingVisitor($bindings)], $singletons, $marker);
     $modulesAdapter = new ModulesAdapterFactory($builder, $singletons, $storage);
     $adapter = $modulesAdapter->get($modules);
     $singletons->setSize($adapter::SINGLETONS_SIZE);
     $aspect = AspectWeaver::create($modules, $storage, $reflection, $pointCuts, $singletons, $locator);
     return new FactoryFactory($modules, $locator, $builder, $storage, $reflection, $aspect);
 }
Esempio n. 2
0
 public function setSize($size)
 {
     parent::setSize($size - $this->super->getSize());
 }