Esempio n. 1
0
 /**
  * @param $name
  * @throws \Kdyby\Autowired\MemberAccessException
  * @return mixed
  */
 public function &__get($name)
 {
     if (!isset($this->autowireProperties[$name])) {
         return parent::__get($name);
     }
     if (empty($this->autowireProperties[$name]['value'])) {
         if (!empty($this->autowireProperties[$name]['factory'])) {
             $factory = callback($this->autowirePropertiesLocator->getService($this->autowireProperties[$name]['factory']), 'create');
             $this->autowireProperties[$name]['value'] = $factory->invokeArgs($this->autowireProperties[$name]['arguments']);
         } else {
             $this->autowireProperties[$name]['value'] = $this->autowirePropertiesLocator->getByType($this->autowireProperties[$name]['type']);
         }
     }
     return $this->autowireProperties[$name]['value'];
 }