/** * Initializes the SQL to PHP map so that it * can be used by client code. */ public static function initialize() { if (self::$isInitialized === false) { self::$TEXT_TYPES = array ( self::CHAR, self::VARCHAR, self::LONGVARCHAR, self::CLOB, self::DATE, self::TIME, self::TIMESTAMP, self::BU_DATE, self::BU_TIMESTAMP ); self::$LOB_TYPES = array ( self::VARBINARY, self::LONGVARBINARY, self::CLOB, self::BLOB ); /* * Create Creole -> native PHP type mappings. */ self::$propelToPHPNativeMap = array(); self::$propelToPHPNativeMap[self::CHAR] = self::CHAR_NATIVE_TYPE; self::$propelToPHPNativeMap[self::VARCHAR] = self::VARCHAR_NATIVE_TYPE; self::$propelToPHPNativeMap[self::LONGVARCHAR] = self::LONGVARCHAR_NATIVE_TYPE; self::$propelToPHPNativeMap[self::CLOB] = self::CLOB_NATIVE_TYPE; self::$propelToPHPNativeMap[self::NUMERIC] = self::NUMERIC_NATIVE_TYPE; self::$propelToPHPNativeMap[self::DECIMAL] = self::DECIMAL_NATIVE_TYPE; self::$propelToPHPNativeMap[self::TINYINT] = self::TINYINT_NATIVE_TYPE; self::$propelToPHPNativeMap[self::SMALLINT] = self::SMALLINT_NATIVE_TYPE; self::$propelToPHPNativeMap[self::INTEGER] = self::INTEGER_NATIVE_TYPE; self::$propelToPHPNativeMap[self::BIGINT] = self::BIGINT_NATIVE_TYPE; self::$propelToPHPNativeMap[self::REAL] = self::REAL_NATIVE_TYPE; self::$propelToPHPNativeMap[self::FLOAT] = self::FLOAT_NATIVE_TYPE; self::$propelToPHPNativeMap[self::DOUBLE] = self::DOUBLE_NATIVE_TYPE; self::$propelToPHPNativeMap[self::BINARY] = self::BINARY_NATIVE_TYPE; self::$propelToPHPNativeMap[self::VARBINARY] = self::VARBINARY_NATIVE_TYPE; self::$propelToPHPNativeMap[self::LONGVARBINARY] = self::LONGVARBINARY_NATIVE_TYPE; self::$propelToPHPNativeMap[self::BLOB] = self::BLOB_NATIVE_TYPE; self::$propelToPHPNativeMap[self::DATE] = self::DATE_NATIVE_TYPE; self::$propelToPHPNativeMap[self::BU_DATE] = self::BU_DATE_NATIVE_TYPE; self::$propelToPHPNativeMap[self::TIME] = self::TIME_NATIVE_TYPE; self::$propelToPHPNativeMap[self::TIMESTAMP] = self::TIMESTAMP_NATIVE_TYPE; self::$propelToPHPNativeMap[self::BU_TIMESTAMP] = self::BU_TIMESTAMP_NATIVE_TYPE; self::$propelToPHPNativeMap[self::BOOLEAN] = self::BOOLEAN_NATIVE_TYPE; /* * Create Propel -> Creole _name_ mappings (not CreoleType:: mappings). * (this is now pretty useless since we've designed them to be the same!) */ self::$propelTypeToCreoleTypeMap = array(); self::$propelTypeToCreoleTypeMap[self::CHAR] = self::CHAR; self::$propelTypeToCreoleTypeMap[self::VARCHAR] = self::VARCHAR; self::$propelTypeToCreoleTypeMap[self::LONGVARCHAR] = self::LONGVARCHAR; self::$propelTypeToCreoleTypeMap[self::CLOB] = self::CLOB; self::$propelTypeToCreoleTypeMap[self::NUMERIC] = self::NUMERIC; self::$propelTypeToCreoleTypeMap[self::DECIMAL] = self::DECIMAL; self::$propelTypeToCreoleTypeMap[self::TINYINT] = self::TINYINT; self::$propelTypeToCreoleTypeMap[self::SMALLINT] = self::SMALLINT; self::$propelTypeToCreoleTypeMap[self::INTEGER] = self::INTEGER; self::$propelTypeToCreoleTypeMap[self::BIGINT] = self::BIGINT; self::$propelTypeToCreoleTypeMap[self::REAL] = self::REAL; self::$propelTypeToCreoleTypeMap[self::FLOAT] = self::FLOAT; self::$propelTypeToCreoleTypeMap[self::DOUBLE] = self::DOUBLE; self::$propelTypeToCreoleTypeMap[self::BINARY] = self::BINARY; self::$propelTypeToCreoleTypeMap[self::VARBINARY] = self::VARBINARY; self::$propelTypeToCreoleTypeMap[self::LONGVARBINARY] = self::LONGVARBINARY; self::$propelTypeToCreoleTypeMap[self::BLOB] = self::BLOB; self::$propelTypeToCreoleTypeMap[self::DATE] = self::DATE; self::$propelTypeToCreoleTypeMap[self::TIME] = self::TIME; self::$propelTypeToCreoleTypeMap[self::TIMESTAMP] = self::TIMESTAMP; self::$propelTypeToCreoleTypeMap[self::BOOLEAN] = self::BOOLEAN; // These are pre-epoch dates, which we need to map to String type // since they cannot be properly handled using strtotime() -- or even numeric // timestamps on Windows. self::$propelTypeToCreoleTypeMap[self::BU_DATE] = self::VARCHAR; self::$propelTypeToCreoleTypeMap[self::BU_TIMESTAMP] = self::VARCHAR; /* * Create Creole type code to Propel type map. */ self::$creoleToPropelTypeMap = array(); self::$creoleToPropelTypeMap[CreoleTypes::CHAR] = self::CHAR; self::$creoleToPropelTypeMap[CreoleTypes::VARCHAR] = self::VARCHAR; self::$creoleToPropelTypeMap[CreoleTypes::LONGVARCHAR] = self::LONGVARCHAR; self::$creoleToPropelTypeMap[CreoleTypes::CLOB] = self::CLOB; self::$creoleToPropelTypeMap[CreoleTypes::NUMERIC] = self::NUMERIC; self::$creoleToPropelTypeMap[CreoleTypes::DECIMAL] = self::DECIMAL; self::$creoleToPropelTypeMap[CreoleTypes::TINYINT] = self::TINYINT; self::$creoleToPropelTypeMap[CreoleTypes::SMALLINT] = self::SMALLINT; self::$creoleToPropelTypeMap[CreoleTypes::INTEGER] = self::INTEGER; self::$creoleToPropelTypeMap[CreoleTypes::BIGINT] = self::BIGINT; self::$creoleToPropelTypeMap[CreoleTypes::REAL] = self::REAL; self::$creoleToPropelTypeMap[CreoleTypes::FLOAT] = self::FLOAT; self::$creoleToPropelTypeMap[CreoleTypes::DOUBLE] = self::DOUBLE; self::$creoleToPropelTypeMap[CreoleTypes::BINARY] = self::BINARY; self::$creoleToPropelTypeMap[CreoleTypes::VARBINARY] = self::VARBINARY; self::$creoleToPropelTypeMap[CreoleTypes::LONGVARBINARY] = self::LONGVARBINARY; self::$creoleToPropelTypeMap[CreoleTypes::BLOB] = self::BLOB; self::$creoleToPropelTypeMap[CreoleTypes::DATE] = self::DATE; self::$creoleToPropelTypeMap[CreoleTypes::TIME] = self::TIME; self::$creoleToPropelTypeMap[CreoleTypes::TIMESTAMP] = self::TIMESTAMP; self::$creoleToPropelTypeMap[CreoleTypes::BOOLEAN] = self::BOOLEAN; self::$creoleToPropelTypeMap[CreoleTypes::YEAR] = self::INTEGER; self::$isInitialized = true; } }