/** * 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; } }
/** * 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); }