19 private static $lengthDefaults = [
30 private $booleanDefinition;
39 $this->booleanDefinition = $booleanDefinition;
47 if ($definition[
'type'] ===
'integer') {
48 $definition[
'type'] =
'int';
51 if (isset($definition[
'length']) && (
int) $definition[
'length'] === 1) {
52 $definition[
'type'] =
'boolean';
53 return $this->booleanDefinition->convertToDefinition($definition);
55 $length = $definition[
'length'] ?? self::$lengthDefaults[$definition[
'type']];
56 $unsigned = $definition[
'unsigned'] ??
false;
58 if ((
bool) $unsigned && in_array($definition[
'type'], [
'int',
'smallint'])) {
63 'xsi:type' => $definition[
'type'],
64 'name' => $definition[
'name'],
66 'unsigned' => $unsigned,
67 'nullable' => $definition[
'nullable'] ??
true,
68 'identity' => $definition[
'identity'] ??
false,
69 'default' => isset($definition[
'default']) && $definition[
'default'] !==
false ?
70 (int) $definition[
'default'] :
null,
71 'primary' => $definition[
'primary'] ??
false
__construct(BooleanDefinition $booleanDefinition)
convertToDefinition(array $definition)