private function parseAttributes($columnName, array $attrs, $isCreate = true) {
        $return = $this->checkType($columnName, $attrs); // type

        if (strtolower($attrs['type']) === 'timestamp' && !isset($attrs['attrs']['default'])) {
            $attrs['attrs']['default'] = '"0000-00-00 00:00:00"';
        }

        if (isset($attrs['attrs']['size']))
            $return .= '(' . $attrs['attrs']['size'] . ')'; // size

        if (isset($attrs['attrs']['collation'])) {
            if (!isset($attrs['attrs']['charset']))
                $attrs['attrs']['charset'] = stristr($attrs['attrs']['collation'], '_', true);

            $return .= ' CHARACTER SET ' . $attrs['attrs']['charset'] . ' COLLATE ' . $attrs['attrs']['collation'];
        }

        $return .= (isset($attrs['attrs']['nullable']) && strtolower($attrs['attrs']['nullable']) == 'true') ? ' NULL' : ' NOT NULL'; // null

        if (isset($attrs['attrs']['default'])) { // auto increment
            if (strtolower($attrs['type']) === 'boolean') {
                if ($attrs['attrs']['default'] === 'true') {
                    $attrs['attrs']['default'] = 1;
                }
                else {
                    $attrs['attrs']['default'] = 0;
                }
            }

            $return .= (trim(strtolower($attrs['type'])) == 'timestamp') ? ' DEFAULT ' . $attrs['attrs']['default'] : ' DEFAULT "' . $attrs['attrs']['default'] . '"';
        }

        if (isset($attrs['attrs']['autoIncrement']) && $attrs['attrs']['autoIncrement'] == 'true') // auto increment
            $return .= ' AUTO_INCREMENT';
        if (!$isCreate) {
            if (!empty($attrs['attrs']['after']))
                $return .= ' AFTER `' . $attrs['attrs']['after'] . '`';
            else if (isset($attrs['attrs']['first']) && $attrs['attrs']['first'])
                $return .= ' FIRST';
        }
        if (isset($attrs['attrs']['onUpdate']) && $attrs['type'] !== 'ReferenceMany') // auto increment
            $return .= ' ON UPDATE ' . $attrs['attrs']['onUpdate'];

        return $return;
    }
private function parseAttributes($columnName, array $attrs, $isCreate = true) {
        $return = $this->checkType($columnName, $attrs); // type

        if (strtolower($attrs['type']) === 'timestamp' && !isset($attrs['attrs']['default'])) {
            $attrs['attrs']['default'] = '"0000-00-00 00:00:00"';
        }

        if (isset($attrs['attrs']['size']))
            $return .= '(' . $attrs['attrs']['size'] . ')'; // size

        if (isset($attrs['attrs']['collation'])) {
            if (!isset($attrs['attrs']['charset']))
                $attrs['attrs']['charset'] = stristr($attrs['attrs']['collation'], '_', true);

            $return .= ' CHARACTER SET ' . $attrs['attrs']['charset'] . ' COLLATE ' . $attrs['attrs']['collation'];
        }

        $return .= (isset($attrs['attrs']['nullable']) && strtolower($attrs['attrs']['nullable']) == 'true') ? ' NULL' : ' NOT NULL'; // null

        if (isset($attrs['attrs']['default'])) { // auto increment
            if (strtolower($attrs['type']) === 'boolean') {
                if ($attrs['attrs']['default'] === 'true') {
                    $attrs['attrs']['default'] = 1;
                }
                else {
                    $attrs['attrs']['default'] = 0;
                }
            }

            $return .= (trim(strtolower($attrs['type'])) == 'timestamp') ? ' DEFAULT ' . $attrs['attrs']['default'] : ' DEFAULT "' . $attrs['attrs']['default'] . '"';
        }

        if (isset($attrs['attrs']['autoIncrement']) && $attrs['attrs']['autoIncrement'] == 'true') // auto increment
            $return .= ' AUTO_INCREMENT';
        if (!$isCreate) {
            if (!empty($attrs['attrs']['after']))
                $return .= ' AFTER `' . $attrs['attrs']['after'] . '`';
            else if (isset($attrs['attrs']['first']) && $attrs['attrs']['first'])
                $return .= ' FIRST';
        }
        if (isset($attrs['attrs']['onUpdate']) && $attrs['type'] !== 'ReferenceMany') // auto increment
            $return .= ' ON UPDATE ' . $attrs['attrs']['onUpdate'];

        return $return;
    }
private function parseAttributes ( $ columnName , array $ attrs , $ isCreate = true ) { $ return = $ this -> checkType ( $ columnName , $ attrs ) ; // type if ( strtolower ( $ attrs [ 'type' ] ) === 'timestamp' && ! isset ( $ attrs [ 'attrs' ] [ 'default' ] ) ) { $ attrs [ 'attrs' ] [ 'default' ] = '"0000-00-00 00:00:00"' ; } if ( isset ( $ attrs [ 'attrs' ] [ 'size' ] ) ) $ return .= '(' . $ attrs [ 'attrs' ] [ 'size' ] . ')' ; // size if ( isset ( $ attrs [ 'attrs' ] [ 'collation' ] ) ) { if ( ! isset ( $ attrs [ 'attrs' ] [ 'charset' ] ) ) $ attrs [ 'attrs' ] [ 'charset' ] = stristr ( $ attrs [ 'attrs' ] [ 'collation' ] , '_' , true ) ; $ return .= ' CHARACTER SET ' . $ attrs [ 'attrs' ] [ 'charset' ] . ' COLLATE ' . $ attrs [ 'attrs' ] [ 'collation' ] ; } $ return .= ( isset ( $ attrs [ 'attrs' ] [ 'nullable' ] ) && strtolower ( $ attrs [ 'attrs' ] [ 'nullable' ] ) == 'true' ) ? ' NULL' : ' NOT NULL' ; // null if ( isset ( $ attrs [ 'attrs' ] [ 'default' ] ) ) { // auto increment if ( strtolower ( $ attrs [ 'type' ] ) === 'boolean' ) { if ( $ attrs [ 'attrs' ] [ 'default' ] === 'true' ) { $ attrs [ 'attrs' ] [ 'default' ] = 1 ; } else { $ attrs [ 'attrs' ] [ 'default' ] = 0 ; } } $ return .= ( trim ( strtolower ( $ attrs [ 'type' ] ) ) == 'timestamp' ) ? ' DEFAULT ' . $ attrs [ 'attrs' ] [ 'default' ] : ' DEFAULT "' . $ attrs [ 'attrs' ] [ 'default' ] . '"' ; } if ( isset ( $ attrs [ 'attrs' ] [ 'autoIncrement' ] ) && $ attrs [ 'attrs' ] [ 'autoIncrement' ] == 'true' ) // auto increment $ return .= ' AUTO_INCREMENT' ; if ( ! $ isCreate ) { if ( ! empty ( $ attrs [ 'attrs' ] [ 'after' ] ) ) $ return .= ' AFTER `' . $ attrs [ 'attrs' ] [ 'after' ] . '`' ; else if ( isset ( $ attrs [ 'attrs' ] [ 'first' ] ) && $ attrs [ 'attrs' ] [ 'first' ] ) $ return .= ' FIRST' ; } if ( isset ( $ attrs [ 'attrs' ] [ 'onUpdate' ] ) && $ attrs [ 'type' ] !== 'ReferenceMany' ) // auto increment $ return .= ' ON UPDATE ' . $ attrs [ 'attrs' ] [ 'onUpdate' ] ; return $ return ; }
Prepares attributes of columns for use
@param string $columnName
@param array $attrs
@todo Parse more attributes e.g. unique, index, ... Check what connection->create() can do
@return string
Prepares attributes of columns for use