Example #1
0
 /**
  * Creates entity object without invoking constructor and transfers data from
  * stdClass to entityClass
  * @param stdClass $source
  * @param null $destination
  * @return mixed
  */
 private function cast($source, $destination = null)
 {
     $sourceReflection = new ReflectionObject($source);
     if ($destination == null) {
         $destination = $this->reflectionEntityClass->newInstanceWithoutConstructor();
     }
     $entityFields = $this->table->getEntityFields();
     foreach ($entityFields as $field) {
         $propertyName = $field->getPropertyName();
         $fieldName = $field->getFieldName();
         $value = null;
         if ($sourceReflection->hasProperty($fieldName)) {
             $sourceProperty = $sourceReflection->getProperty($fieldName);
             $value = $sourceProperty->getValue($source);
         }
         $this->setPropertyValue($field, $value, $propertyName, $destination);
     }
     $this->setCache($destination);
     return $destination;
 }