Migration::fieldFormat PHP Method

fieldFormat() private method

Define field's format
private fieldFormat ( $type, $default_value, $nodefault = false )
$type string can be bool, string, integer, date, datatime, text, longtext, autoincrement, char
$default_value string new field's default value, if a specific default value needs to be used
$nodefault bolean (false by default)
    private function fieldFormat($type, $default_value, $nodefault = false)
    {
        $format = '';
        switch ($type) {
            case 'bool':
                $format = "TINYINT(1) NOT NULL";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT '0'";
                    } else {
                        if (in_array($default_value, array('0', '1'))) {
                            $format .= " DEFAULT '{$default_value}'";
                        } else {
                            trigger_error(__('default_value must be 0 or 1'), E_USER_ERROR);
                        }
                    }
                }
                break;
            case 'char':
                $format = "CHAR(1)";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT NULL";
                    } else {
                        $format .= " NOT NULL DEFAULT '{$default_value}'";
                    }
                }
                break;
            case 'string':
                $format = "VARCHAR(255) COLLATE utf8_unicode_ci";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT NULL";
                    } else {
                        $format .= " NOT NULL DEFAULT '{$default_value}'";
                    }
                }
                break;
            case 'integer':
                $format = "INT(11) NOT NULL";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT '0'";
                    } else {
                        if (is_numeric($default_value)) {
                            $format .= " DEFAULT '{$default_value}'";
                        } else {
                            trigger_error(__('default_value must be numeric'), E_USER_ERROR);
                        }
                    }
                }
                break;
            case 'date':
                $format = "DATE";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT NULL";
                    } else {
                        $format .= " DEFAULT '{$default_value}'";
                    }
                }
                break;
            case 'datetime':
                $format = "DATETIME";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT NULL";
                    } else {
                        $format .= " DEFAULT '{$default_value}'";
                    }
                }
                break;
            case 'text':
                $format = "TEXT COLLATE utf8_unicode_ci";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT NULL";
                    } else {
                        $format .= " NOT NULL DEFAULT '{$default_value}'";
                    }
                }
                break;
            case 'longtext':
                $format = "LONGTEXT COLLATE utf8_unicode_ci";
                if (!$nodefault) {
                    if (is_null($default_value)) {
                        $format .= " DEFAULT NULL";
                    } else {
                        $format .= " NOT NULL DEFAULT '{$default_value}'";
                    }
                }
                break;
                // for plugins
            // for plugins
            case 'autoincrement':
                $format = "INT(11) NOT NULL AUTO_INCREMENT";
                break;
            default:
                // for compatibility with old 0.80 migrations
                $format = $type;
                break;
        }
        return $format;
    }