/** * Converts value for some column types * * @param mixed $value The value to convert * @param ColumnMap $colMap The ColumnMap object * @return mixed The converted value */ protected function convertValueForColumn($value, ColumnMap $colMap) { if ($colMap->getType() == 'OBJECT' && is_object($value)) { if (is_array($value)) { $value = array_map('serialize', $value); } else { $value = serialize($value); } } elseif ($colMap->getType() == 'ARRAY' && is_array($value)) { $value = '| ' . implode(' | ', $value) . ' |'; } elseif ($colMap->getType() == 'ENUM') { if (is_array($value)) { $value = array_map(array($colMap, 'getValueSetKey'), $value); } else { $value = $colMap->getValueSetKey($value); } } return $value; }
/** * Returns a sfValidator class name for a given column. * * @param ColumnMap $column A ColumnMap object * * @return string The name of a subclass of sfValidator */ public function getValidatorClassForColumn(ColumnMap $column) { switch ($column->getType()) { case PropelColumnTypes::BOOLEAN: $name = 'Boolean'; break; case PropelColumnTypes::CLOB: case PropelColumnTypes::CHAR: case PropelColumnTypes::VARCHAR: case PropelColumnTypes::LONGVARCHAR: $name = 'String'; break; case PropelColumnTypes::DOUBLE: case PropelColumnTypes::FLOAT: case PropelColumnTypes::NUMERIC: case PropelColumnTypes::DECIMAL: case PropelColumnTypes::REAL: $name = 'Number'; break; case PropelColumnTypes::INTEGER: case PropelColumnTypes::SMALLINT: case PropelColumnTypes::TINYINT: case PropelColumnTypes::BIGINT: $name = 'Integer'; break; case PropelColumnTypes::DATE: $name = 'Date'; break; case PropelColumnTypes::TIME: $name = 'Time'; break; case PropelColumnTypes::TIMESTAMP: $name = 'DateTime'; break; default: $name = 'Pass'; } if ($column->isPrimaryKey() || $column->isForeignKey()) { $name = 'PropelChoice'; } return sprintf('sfValidator%s', $name); }
public function getType(ColumnMap $column) { if ($column->isForeignKey()) { return 'ForeignKey'; } switch ($column->getType()) { case PropelColumnTypes::BOOLEAN: return 'Boolean'; case PropelColumnTypes::DATE: case PropelColumnTypes::TIME: case PropelColumnTypes::TIMESTAMP: return 'Date'; case PropelColumnTypes::DOUBLE: case PropelColumnTypes::FLOAT: case PropelColumnTypes::NUMERIC: case PropelColumnTypes::DECIMAL: case PropelColumnTypes::REAL: case PropelColumnTypes::INTEGER: case PropelColumnTypes::SMALLINT: case PropelColumnTypes::TINYINT: case PropelColumnTypes::BIGINT: return 'Number'; default: return 'Text'; } }
/** * Get value for column to use in database dump. * * @param BaseObject $obj * @param ColumnMap $column * @return mixed */ protected static function getColumnValue(BaseObject $obj, ColumnMap $column) { switch ($column->getType()) { case PropelColumnTypes::DATE: return $obj->{'get' . $column->getPhpName()}('Y-m-d'); break; case PropelColumnTypes::TIMESTAMP: return $obj->{'get' . $column->getPhpName()}('Y-m-d H:i:s'); break; case PropelColumnTypes::TIME: return $obj->{'get' . $column->getPhpName()}('H:i:s'); break; default: return $obj->{'get' . $column->getPhpName()}(); } }
/** * Formats a temporal value brefore binding, given a ColumnMap object * * @param mixed $value The temporal value * @param ColumnMap $cMap * * @return string The formatted temporal value */ protected function formatTemporalValue($value, ColumnMap $cMap) { /** @var $dt PropelDateTime */ if ($dt = PropelDateTime::newInstance($value)) { switch ($cMap->getType()) { case PropelColumnTypes::TIMESTAMP: case PropelColumnTypes::BU_TIMESTAMP: $value = $dt->format($this->getTimestampFormatter()); break; case PropelColumnTypes::DATE: case PropelColumnTypes::BU_DATE: $value = $dt->format($this->getDateFormatter()); break; case PropelColumnTypes::TIME: $value = $dt->format($this->getTimeFormatter()); break; } } return $value; }
protected static function _getColumnRawValue(ColumnMap $column, $value) { if ($value === null) { return null; } switch ($column->getType()) { case PropelColumnTypes::ENUM: $valueSet = $column->getValueSet(); return array_search($value, $valueSet); case PropelColumnTypes::PHP_ARRAY: return '| ' . implode(' | ', $value) . ' |'; case PropelColumnTypes::OBJECT: return serialize($value); } return $value; }
/** * Set column value from instance. * * @param \BaseObject $instance * @param \ColumnMap $column * @param mixed $value */ protected function setColumnValue(\BaseObject $instance, \ColumnMap $column, $value) { if ($column->getType() === \PropelColumnTypes::PHP_ARRAY && !is_array($value)) { if (is_string($value) && !empty($value)) { $value = explode("\n", $value); } else { if ($value !== null) { $value = array(); } } } $instance->{'set' . $column->getPhpName()}($value); }
/** * Extract the value method and the required parameters for it, for given a ColumnMap's type. * Return an Array holding the value method as first value and its parameters as the second one. * * @param ColumnMap $column * @return Array */ public static function extractValueMethod(ColumnMap $column) { $value_method = 'get' . $column->getPhpName(); $params = null; if (in_array($column->getType(), array(PropelColumnTypes::BU_DATE, PropelColumnTypes::DATE))) { $params = ncChangeLogConfigHandler::getDateFormat(); } elseif (in_array($column->getType(), array(PropelColumnTypes::BU_TIMESTAMP, PropelColumnTypes::TIMESTAMP))) { $params = ncChangeLogConfigHandler::getDateTimeFormat(); } elseif ($column->getType() == PropelColumnTypes::TIME) { $params = ncChangeLogConfigHandler::getTimeFormat(); } return array($value_method, $params); }