Example #1
0
 /**
  * Transforms the object back to a string that can be inserted into the
  * database.
  *
  * Note that the returned string is not escaped using something like
  * mysql_real_escape_string, this is not needed for parameterized queries.
  *
  * @param mixed $value A PHP object.
  * @return string For in the database.
  */
 public function serializeValue($value)
 {
     if ($value === null) {
         return null;
     }
     switch ($this->type) {
         case self::TYPE_INT:
         case self::TYPE_PRIMARY_KEY:
             return (int) $value;
         case self::TYPE_JSON:
             return JsonHelper::arrayToString($value);
         case self::TYPE_DATE:
             return $value->format("Y-m-d H:i:s");
         case self::TYPE_STRING_LOWERCASE:
             return strToLower($value);
         default:
             return (string) $value;
     }
 }
Example #2
0
 /**
  * Sets the extra data of the user.
  * @param mixed $extra_data The extra data, either empty, as an array of as
  * a json string.
  * @throws InvalidArgumentException If the extra data is not a string, array or null.
  */
 public function setExtraData($extra_data)
 {
     if ($extra_data === null) {
         $this->extraData = [];
         return;
     }
     if (is_string($extra_data)) {
         if (empty($extra_data)) {
             $this->extraData = [];
             return;
         }
         $this->extraData = JsonHelper::stringToArray($extra_data);
         return;
     }
     if (is_array($extra_data)) {
         $this->extraData = $extra_data;
         return;
     }
     throw new InvalidArgumentException("Expected string, array or null, got " . $extra_data);
 }