public static function createFromArray(array $array = array()) { $entity = new self(); foreach ($array as $propertyName => $propertyValue) { if (!property_exists($entity, $propertyName)) { // ignore unknown entities like "metadata" continue; } $entity->{$propertyName} = parent::cleanValue($propertyValue); } return $entity; }