PdoMysqlMapping   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 0
dl 0
loc 44
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getDatatypeMapping() 0 41 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Soluble\Metadata\Reader\Mapping;
6
7
use Soluble\Datatype\Column;
8
use ArrayObject;
9
10
class PdoMysqlMapping
11
{
12 4
    public static function getDatatypeMapping(): ArrayObject
13
    {
14 4
        $mapping = new ArrayObject([
15 4
            'STRING' => ['type' => Column\Type::TYPE_STRING, 'native' => 'CHAR'],
16
            'VAR_STRING' => ['type' => Column\Type::TYPE_STRING, 'native' => 'VARCHAR'],
17
            // BLOBS ARE CURRENTLY SENT AS TEXT
18
            // I DIDN'T FIND THE WAY TO MAKE THE DIFFERENCE !!!
19
            'BLOB' => ['type' => Column\Type::TYPE_BLOB, 'native' => 'BLOB'],
20
            'TINY_BLOB' => ['type' => Column\Type::TYPE_BLOB, 'native' => 'TINY_BLOB'],
21
            'MEDIUM_BLOB' => ['type' => Column\Type::TYPE_BLOB, 'native' => 'MEDIUM_BLOB'],
22
            'LONG_BLOB' => ['type' => Column\Type::TYPE_BLOB, 'native' => 'LONG_BLOB'],
23
24
            // integer
25
            'TINY' => ['type' => Column\Type::TYPE_INTEGER, 'native' => 'TINYINT'],
26
            'SHORT' => ['type' => Column\Type::TYPE_INTEGER, 'native' => 'SMALLINT'],
27
            'INT24' => ['type' => Column\Type::TYPE_INTEGER, 'native' => 'MEDIUMINT'],
28
            'LONG' => ['type' => Column\Type::TYPE_INTEGER, 'native' => 'INTEGER'],
29
            'LONGLONG' => ['type' => Column\Type::TYPE_INTEGER, 'native' => 'BIGINT'],
30
31
            // timestamps
32
            'TIMESTAMP' => ['type' => Column\Type::TYPE_DATETIME, 'native' => 'TIMESTAMP'],
33
            'DATETIME' => ['type' => Column\Type::TYPE_DATETIME, 'native' => 'DATETIME'],
34
            // dates
35
            'DATE' => ['type' => Column\Type::TYPE_DATE, 'native' => 'DATE'],
36
            'NEWDATE' => ['type' => Column\Type::TYPE_DATE, 'native' => 'DATE'],
37
            // time
38
            'TIME' => ['type' => Column\Type::TYPE_TIME, 'native' => 'TIME'],
39
            // decimals
40
            'DECIMAL' => ['type' => Column\Type::TYPE_DECIMAL, 'native' => 'DECIMAL'],
41
            'NEWDECIMAL' => ['type' => Column\Type::TYPE_DECIMAL, 'native' => 'DECIMAL'],
42
            'FLOAT' => ['type' => Column\Type::TYPE_FLOAT, 'native' => 'FLOAT'],
43
            'DOUBLE' => ['type' => Column\Type::TYPE_FLOAT, 'native' => 'DOUBLE'],
44
            // boolean
45
            'BIT' => ['type' => Column\Type::TYPE_BIT, 'native' => 'BIT'],
46
            'BOOLEAN' => ['type' => Column\Type::TYPE_BOOLEAN, 'native' => 'BOOLEAN'],
47
            'GEOMETRY' => ['type' => Column\Type::TYPE_SPATIAL_GEOMETRY, 'native' => null],
48
            'NULL' => ['type' => Column\Type::TYPE_NULL, 'native' => 'NULL']
49
        ]);
50
51 4
        return $mapping;
52
    }
53
}
54