src/Schema/AbstractColumn.php
public function type(string $abstract): AbstractColumn
    {
        if (isset($this->aliases[$abstract])) {
            //Make recursive
            $abstract = $this->aliases[$abstract];
        }

        if (!isset($this->mapping[$abstract])) {
            throw new SchemaException("Undefined abstract/virtual type '{$abstract}'");
        }

        //Resetting all values to default state.
        $this->size = $this->precision = $this->scale = 0;
        $this->enumValues = [];

        //Abstract type points to DBMS specific type
        if (is_string($this->mapping[$abstract])) {
            $this->type = $this->mapping[$abstract];

            return $this;
        }

        //Configuring column properties based on abstractType preferences
        foreach ($this->mapping[$abstract] as $property => $value) {
            $this->{$property} = $value;
        }

        return $this;
    }
public function type(string $abstract): AbstractColumn
    {
        if (isset($this->aliases[$abstract])) {
            //Make recursive
            $abstract = $this->aliases[$abstract];
        }

        if (!isset($this->mapping[$abstract])) {
            throw new SchemaException("Undefined abstract/virtual type '{$abstract}'");
        }

        //Resetting all values to default state.
        $this->size = $this->precision = $this->scale = 0;
        $this->enumValues = [];

        //Abstract type points to DBMS specific type
        if (is_string($this->mapping[$abstract])) {
            $this->type = $this->mapping[$abstract];

            return $this;
        }

        //Configuring column properties based on abstractType preferences
        foreach ($this->mapping[$abstract] as $property => $value) {
            $this->{$property} = $value;
        }

        return $this;
    }
public function type ( string $ abstract ) : AbstractColumn { if ( isset ( $ this -> aliases [ $ abstract ] ) ) { //Make recursive $ abstract = $ this -> aliases [ $ abstract ] ; } if ( ! isset ( $ this -> mapping [ $ abstract ] ) ) { throw new SchemaException ( "Undefined abstract/virtual type '{$abstract}'" ) ; } //Resetting all values to default state. $ this -> size = $ this -> precision = $ this -> scale = 0 ; $ this -> enumValues = [ ] ; //Abstract type points to DBMS specific type if ( is_string ( $ this -> mapping [ $ abstract ] ) ) { $ this -> type = $ this -> mapping [ $ abstract ] ; return $ this ; } //Configuring column properties based on abstractType preferences foreach ( $ this -> mapping [ $ abstract ] as $ property => $ value ) { $ this -> { $ property } = $ value ; } return $ this ; }
Give column new abstract type. DBMS specific implementation must map provided type into one
of internal database values.

Attention, changing type of existed columns in some databases has a lot of restrictions like
cross type conversions and etc. Try do not change column type without a reason.

@param string $abstract Abstract or virtual type declared in mapping.
@return self|$this

@throws SchemaException
@todo Support native database types (simply bypass abstractType)!
Give column new abstract type . DBMS specific implementation must map provided type into one of internal database values .