Storm\Drivers\Platforms\Mysql\Syncing\DatabaseBuilder::BuildColumn PHP Метод

BuildColumn() приватный Метод

private BuildColumn ( Storm\Drivers\Base\Relational\Queries\IConnection $Connection, array $ColumnInfoRow )
$Connection Storm\Drivers\Base\Relational\Queries\IConnection
$ColumnInfoRow array
    private function BuildColumn(IConnection $Connection, array $ColumnInfoRow)
    {
        $Name = $ColumnInfoRow['COLUMN_NAME'];
        $DataType = $this->BuildDataType($ColumnInfoRow);
        $Traits = [];
        if ($ColumnInfoRow['IS_NULLABLE'] === 'YES') {
            $Traits[] = new Columns\Traits\DefaultValue($ColumnInfoRow['COLUMN_DEFAULT']);
        } else {
            $Traits[] = new Columns\Traits\NotNullable();
        }
        if ($ColumnInfoRow['CHARACTER_SET_NAME'] !== null) {
            $Traits[] = new Mysql\Columns\CharacterSet($ColumnInfoRow['CHARACTER_SET_NAME']);
        }
        if ($ColumnInfoRow['COLLATION_NAME'] !== null) {
            $Traits[] = new Mysql\Columns\Collation($ColumnInfoRow['COLLATION_NAME']);
        }
        if (strpos($ColumnInfoRow['EXTRA'], 'auto_increment') !== false) {
            $Traits[] = new Columns\Traits\Increment();
        }
        if (strlen($ColumnInfoRow['COLUMN_COMMENT']) > 0) {
            $Traits[] = new Columns\Traits\Comment($ColumnInfoRow['COLUMN_COMMENT']);
        }
        $IsPrimaryKey = $ColumnInfoRow['COLUMN_KEY'] === 'PRI';
        return new Columns\Column($Name, $DataType, $IsPrimaryKey, $Traits);
    }