Exemple #1
0
 /**
  * @param IDefinition $definition
  * @param $id
  * @param $args
  *
  * @return mixed|null
  * @throws TypeMismatchException
  */
 public function getWildcard(IDefinition $definition, $id, $args)
 {
     $abstract = $definition->getValue();
     $args['abstract'] = $id;
     $instance = $this->resolveAbstract($abstract, $args);
     $this->matchClassType($id, $instance);
     return $instance;
 }
Exemple #2
0
 /**
  * @param IDefinition $definition
  * @param $id
  * @param $value
  */
 protected function processSingletonDefinition(IDefinition $definition, $id, $value)
 {
     if ($definition->isSingleton() && !$definition instanceof ValueDefinition) {
         $newDefinition = new ValueDefinition($id, $value);
         $this->registry->addDefinition($newDefinition);
         foreach ($definition->getAliases() as $alias) {
             $alias->setValue($newDefinition);
         }
     }
 }
Exemple #3
0
 /**
  * @param IDefinition $definition
  */
 public function addDefinition(IDefinition $definition)
 {
     $this->removeDefinition($definition->getId());
     array_unshift($this->definitions, $definition);
 }