ArticleTypeField::DatabaseTypes PHP Method

DatabaseTypes() public static method

Returns an array of valid field data types.
public static DatabaseTypes ( $p_numericDigits = null, $p_numericPrecision = null ) : array
return array
    public static function DatabaseTypes($p_numericDigits = null, $p_numericPrecision = null)
    {
        global $g_ado_db;
        $p_numericDigits = is_null($p_numericDigits) ? self::NUMERIC_DEFAULT_DIGITS : $p_numericDigits;
        $p_numericPrecision = is_null($p_numericPrecision) ? self::NUMERIC_DEFAULT_PRECISION : $p_numericPrecision;
        settype($p_numericDigits, 'integer');
        settype($p_numericPrecision, 'integer');
        $numericDef = "NUMERIC({$p_numericDigits}, {$p_numericPrecision}) DEFAULT NULL";
        return array(self::TYPE_TEXT => 'VARCHAR(255) DEFAULT NULL', self::TYPE_LONGTEXT => $g_ado_db->getDriverName() === 'pdo_sqlite' ? 'TEXT DEFAULT NULL' : 'MEDIUMBLOB DEFAULT NULL', self::TYPE_BODY => $g_ado_db->getDriverName() === 'pdo_sqlite' ? 'TEXT DEFAULT NULL' : 'MEDIUMBLOB DEFAULT NULL', self::TYPE_DATE => 'DATE DEFAULT NULL', self::TYPE_TOPIC => 'INTEGER DEFAULT NULL', self::TYPE_SWITCH => "BOOLEAN NOT NULL DEFAULT FALSE", self::TYPE_NUMERIC => $numericDef, self::TYPE_COMPLEX_DATE => 'VARCHAR(255) DEFAULT NULL');
    }

Usage Example

 /**
  * Extends article type table with configured fields
  * NOTE: This ia a hack, should be converted to new ArticleType Entity
  */
 private function extendArticleTypeTable()
 {
     // Create article type
     $tableName = $this->getTableName();
     $query = '';
     $types = \ArticleTypeField::DatabaseTypes(null, null);
     $articleTypeFields = $this->getArticleTypeConfiguration();
     foreach ($articleTypeFields as $fieldId => $fieldData) {
         $query .= "ALTER TABLE `" . $tableName . "` ADD COLUMN `F" . $fieldId . '` ' . $types[$fieldData['type']] . ';';
     }
     $this->connection->exec($query);
 }
All Usage Examples Of ArticleTypeField::DatabaseTypes