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

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

private BuildDataType ( array $ColumnInfoRow )
$ColumnInfoRow array
    private function BuildDataType(array $ColumnInfoRow)
    {
        $DataTypeName = $ColumnInfoRow['DATA_TYPE'];
        $DataTypeDefintion = $ColumnInfoRow['COLUMN_TYPE'];
        $DataTypeDefintion = trim(str_replace($DataTypeName, '', $DataTypeDefintion));
        $DataTypeExtra = null;
        $DataTypeParameters = [];
        if (strlen($DataTypeDefintion) > 0) {
            if (strpos($DataTypeDefintion, '(') !== false && strpos($DataTypeDefintion, ')') !== false) {
                $DataTypeExtra = trim(substr($DataTypeDefintion, strrpos($DataTypeDefintion, ')') + 1));
                if (strlen($DataTypeExtra) > 0) {
                    $DataTypeDefintion = substr($DataTypeDefintion, 0, -strlen($DataTypeExtra));
                } else {
                    $DataTypeExtra = null;
                }
                $DataTypeDefintion = trim($DataTypeDefintion, '()');
                $DataTypeParameters = explode(',', $DataTypeDefintion);
                array_walk($DataTypeParameters, function (&$Parameter, $Key) {
                    $UnquotedParameter = trim($Parameter, '\'"');
                    if ($UnquotedParameter !== $Parameter) {
                        $Parameter = $UnquotedParameter;
                    } else {
                        if (is_numeric($Parameter)) {
                            $Parameter = $Parameter + 0;
                        }
                    }
                });
            }
        }
        return new \Storm\Drivers\Base\Relational\Columns\DataType($DataTypeName, $DataTypeParameters, $DataTypeExtra);
    }