1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
|
4
|
|
|
namespace TheCodingMachine\FluidSchema; |
5
|
|
|
|
6
|
|
|
|
7
|
|
|
use Doctrine\DBAL\Schema\Column; |
8
|
|
|
use Doctrine\DBAL\Schema\Table; |
9
|
|
|
|
10
|
|
|
class TdbmFluidColumn |
11
|
|
|
{ |
12
|
|
|
/** |
13
|
|
|
* @var TdbmFluidTable |
14
|
|
|
*/ |
15
|
|
|
private $tdbmFluidTable; |
16
|
|
|
/** |
17
|
|
|
* @var FluidColumn |
18
|
|
|
*/ |
19
|
|
|
private $fluidColumn; |
20
|
|
|
/** |
21
|
|
|
* @var NamingStrategyInterface |
22
|
|
|
*/ |
23
|
|
|
private $namingStrategy; |
24
|
|
|
|
25
|
|
|
public function __construct(TdbmFluidTable $tdbmFluidTable, FluidColumn $fluidColumn, NamingStrategyInterface $namingStrategy) |
26
|
|
|
{ |
27
|
|
|
$this->tdbmFluidTable = $tdbmFluidTable; |
28
|
|
|
$this->fluidColumn = $fluidColumn; |
29
|
|
|
$this->namingStrategy = $namingStrategy; |
30
|
|
|
} |
31
|
|
|
|
32
|
|
|
private function getOptions(FluidColumnOptions $options): TdbmFluidColumnOptions |
33
|
|
|
{ |
34
|
|
|
return new TdbmFluidColumnOptions($this->tdbmFluidTable, $this->fluidColumn, $options); |
35
|
|
|
} |
36
|
|
|
|
37
|
|
|
public function integer(): TdbmFluidColumnOptions |
38
|
|
|
{ |
39
|
|
|
$options = $this->fluidColumn->integer(); |
40
|
|
|
return $this->getOptions($options); |
41
|
|
|
} |
42
|
|
|
|
43
|
|
|
public function smallInt(): TdbmFluidColumnOptions |
44
|
|
|
{ |
45
|
|
|
$options = $this->fluidColumn->smallInt(); |
46
|
|
|
return $this->getOptions($options); |
47
|
|
|
} |
48
|
|
|
|
49
|
|
|
public function bigInt(): TdbmFluidColumnOptions |
50
|
|
|
{ |
51
|
|
|
$options = $this->fluidColumn->bigInt(); |
52
|
|
|
return $this->getOptions($options); |
53
|
|
|
} |
54
|
|
|
|
55
|
|
|
public function decimal(int $precision = 10, int $scale = 0): TdbmFluidColumnOptions |
56
|
|
|
{ |
57
|
|
|
$options = $this->fluidColumn->decimal($precision, $scale); |
58
|
|
|
return $this->getOptions($options); |
59
|
|
|
} |
60
|
|
|
|
61
|
|
|
public function float(int $precision = 10, int $scale = 0): TdbmFluidColumnOptions |
62
|
|
|
{ |
63
|
|
|
$options = $this->fluidColumn->float($precision, $scale); |
64
|
|
|
return $this->getOptions($options); |
65
|
|
|
} |
66
|
|
|
|
67
|
|
|
public function string(?int $length = null, bool $fixed = false): TdbmFluidColumnOptions |
68
|
|
|
{ |
69
|
|
|
$options = $this->fluidColumn->string($length, $fixed); |
70
|
|
|
return $this->getOptions($options); |
71
|
|
|
} |
72
|
|
|
|
73
|
|
|
public function text(?int $length = null): TdbmFluidColumnOptions |
74
|
|
|
{ |
75
|
|
|
$options = $this->fluidColumn->text($length); |
76
|
|
|
return $this->getOptions($options); |
77
|
|
|
} |
78
|
|
|
|
79
|
|
|
public function guid(): TdbmFluidColumnOptions |
80
|
|
|
{ |
81
|
|
|
$options = $this->fluidColumn->guid(); |
82
|
|
|
return $this->getOptions($options); |
83
|
|
|
} |
84
|
|
|
|
85
|
|
|
public function binary(?int $length = null, bool $fixed = false): TdbmFluidColumnOptions |
86
|
|
|
{ |
87
|
|
|
$options = $this->fluidColumn->binary($length, $fixed); |
88
|
|
|
return $this->getOptions($options); |
89
|
|
|
} |
90
|
|
|
|
91
|
|
|
public function blob(): TdbmFluidColumnOptions |
92
|
|
|
{ |
93
|
|
|
$options = $this->fluidColumn->blob(); |
94
|
|
|
return $this->getOptions($options); |
95
|
|
|
} |
96
|
|
|
|
97
|
|
|
public function boolean(): TdbmFluidColumnOptions |
98
|
|
|
{ |
99
|
|
|
$options = $this->fluidColumn->boolean(); |
100
|
|
|
return $this->getOptions($options); |
101
|
|
|
} |
102
|
|
|
|
103
|
|
|
public function date(): TdbmFluidColumnOptions |
104
|
|
|
{ |
105
|
|
|
$options = $this->fluidColumn->date(); |
106
|
|
|
return $this->getOptions($options); |
107
|
|
|
} |
108
|
|
|
|
109
|
|
|
public function dateImmutable(): TdbmFluidColumnOptions |
110
|
|
|
{ |
111
|
|
|
$options = $this->fluidColumn->dateImmutable(); |
112
|
|
|
return $this->getOptions($options); |
113
|
|
|
} |
114
|
|
|
|
115
|
|
|
public function datetime(): TdbmFluidColumnOptions |
116
|
|
|
{ |
117
|
|
|
$options = $this->fluidColumn->datetime(); |
118
|
|
|
return $this->getOptions($options); |
119
|
|
|
} |
120
|
|
|
|
121
|
|
|
public function datetimeImmutable(): TdbmFluidColumnOptions |
122
|
|
|
{ |
123
|
|
|
$options = $this->fluidColumn->datetimeImmutable(); |
124
|
|
|
return $this->getOptions($options); |
125
|
|
|
} |
126
|
|
|
|
127
|
|
|
public function datetimeTz(): TdbmFluidColumnOptions |
128
|
|
|
{ |
129
|
|
|
$options = $this->fluidColumn->datetimeTz(); |
130
|
|
|
return $this->getOptions($options); |
131
|
|
|
} |
132
|
|
|
|
133
|
|
|
public function datetimeTzImmutable(): TdbmFluidColumnOptions |
134
|
|
|
{ |
135
|
|
|
$options = $this->fluidColumn->datetimeTzImmutable(); |
136
|
|
|
return $this->getOptions($options); |
137
|
|
|
} |
138
|
|
|
|
139
|
|
|
public function time(): TdbmFluidColumnOptions |
140
|
|
|
{ |
141
|
|
|
$options = $this->fluidColumn->time(); |
142
|
|
|
return $this->getOptions($options); |
143
|
|
|
} |
144
|
|
|
|
145
|
|
|
public function timeImmutable(): TdbmFluidColumnOptions |
146
|
|
|
{ |
147
|
|
|
$options = $this->fluidColumn->timeImmutable(); |
148
|
|
|
return $this->getOptions($options); |
149
|
|
|
} |
150
|
|
|
|
151
|
|
|
public function dateInterval(): TdbmFluidColumnOptions |
152
|
|
|
{ |
153
|
|
|
$options = $this->fluidColumn->dateInterval(); |
154
|
|
|
return $this->getOptions($options); |
155
|
|
|
} |
156
|
|
|
|
157
|
|
|
public function array(): TdbmFluidColumnOptions |
158
|
|
|
{ |
159
|
|
|
$options = $this->fluidColumn->array(); |
160
|
|
|
return $this->getOptions($options); |
161
|
|
|
} |
162
|
|
|
|
163
|
|
|
public function simpleArray(): TdbmFluidColumnOptions |
164
|
|
|
{ |
165
|
|
|
$options = $this->fluidColumn->simpleArray(); |
166
|
|
|
return $this->getOptions($options); |
167
|
|
|
} |
168
|
|
|
|
169
|
|
|
public function json(): TdbmFluidColumnOptions |
170
|
|
|
{ |
171
|
|
|
$options = $this->fluidColumn->json(); |
172
|
|
|
return $this->getOptions($options); |
173
|
|
|
} |
174
|
|
|
|
175
|
|
|
public function jsonArray(): TdbmFluidColumnOptions |
176
|
|
|
{ |
177
|
|
|
$options = $this->fluidColumn->jsonArray(); |
|
|
|
|
178
|
|
|
return $this->getOptions($options); |
179
|
|
|
} |
180
|
|
|
|
181
|
|
|
public function object(): TdbmFluidColumnOptions |
182
|
|
|
{ |
183
|
|
|
$options = $this->fluidColumn->object(); |
184
|
|
|
return $this->getOptions($options); |
185
|
|
|
} |
186
|
|
|
|
187
|
|
|
public function references(string $tableName, ?string $constraintName = null, string $onUpdate = 'RESTRICT', string $onDelete = 'RESTRICT'): TdbmFluidColumnOptions |
188
|
|
|
{ |
189
|
|
|
$options = $this->fluidColumn->references($tableName, $constraintName, $onUpdate, $onDelete); |
190
|
|
|
return $this->getOptions($options); |
191
|
|
|
} |
192
|
|
|
|
193
|
|
|
public function getDbalColumn(): Column |
194
|
|
|
{ |
195
|
|
|
return $this->fluidColumn->getDbalColumn(); |
196
|
|
|
} |
197
|
|
|
} |
198
|
|
|
|
This method has been deprecated. The supplier of the class has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.