Esempio n. 1
0
 private function createInstance(Parameter $parameter, $properties)
 {
     $injector = new Injector(new Factory());
     $instance = $injector->injectConstructor($this->getClass($parameter), $properties, function () {
         return false;
     });
     foreach ($this->getProperties($parameter) as $property) {
         $property->set($instance, $properties[$property->name()]);
     }
     return $instance;
 }
Esempio n. 2
0
 /**
  * @param Parameter $parameter
  * @param null $serialized
  * @return object
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $properties = [];
     foreach ($this->getProperties($parameter) as $property) {
         $propertyParameter = new Parameter($parameter->getName() . '-' . $property->name(), $property->type());
         $field = $this->getField($propertyParameter);
         $properties[$property->name()] = $field->inflate($propertyParameter, $this->reader->read($propertyParameter));
     }
     $injector = new Injector(new Factory());
     $instance = $injector->injectConstructor($this->getClass($parameter), $properties, function () {
         return false;
     });
     foreach ($this->getProperties($parameter) as $property) {
         $value = $properties[$property->name()];
         if (!is_null($value) && $property->canSet()) {
             $property->set($instance, $value);
         }
     }
     return $instance;
 }
Esempio n. 3
0
 /**
  * @param Parameter $parameter
  * @param \watoki\collections\Map $serialized
  * @return object
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $reader = new PropertyReader($this->types, $this->getClass($parameter));
     $properties = [];
     foreach ($reader->readInterface() as $property) {
         if ($serialized->has($property->name())) {
             $param = $this->makePropertyParameter($parameter, $property);
             $properties[$property->name()] = $this->getField($param)->inflate($param, $serialized[$property->name()]);
         }
     }
     $injector = new Injector(new Factory());
     $instance = $injector->injectConstructor($this->getClass($parameter), $properties, function () {
         return false;
     });
     foreach ($reader->readInterface() as $property) {
         if ($property->canSet()) {
             $property->set($instance, $properties[$property->name()]);
         }
     }
     return $instance;
 }
Esempio n. 4
0
 protected function createInstance(array $parameters)
 {
     $injector = new Injector(new Factory());
     $instance = $injector->injectConstructor($this->class->name, $parameters, function () {
         return false;
     });
     foreach ($this->reader->readInterface() as $property) {
         if ($property->canSet() && array_key_exists($property->name(), $parameters)) {
             $property->set($instance, $parameters[$property->name()]);
         }
     }
     return $instance;
 }