/** * @return ColumnDefinitionInterface[] */ public function getColumns() { $columnDefinition = new ColumnDefinition(); $columnDefinition->setPhpDataType($this->getPhpDataType()); $type = $this->getSqlDataType(); if ($maxLength = $this->getFieldDefinition()->getMaxLength()) { $type .= '(' . $maxLength . ')'; } $columnDefinition->setSqlDataType($type); $columnDefinition->setName($this->getFieldDefinition()->getId()); if ($regex = $this->getFieldDefinition()->getRequiredRegex()) { $columnDefinition->setRequiredRegex($regex); } return [$columnDefinition]; }
/** * @return string */ public function getPhpDataType() { if (1 < count($this->getColumns())) { return 'array'; } if ($this->getColumns()) { $first = $this->getColumns()[0]; if (ColumnDefinition::isInteger($first)) { return 'integer'; } else { if (ColumnDefinition::isBoolean($first)) { return 'boolean'; } else { if (ColumnDefinition::isFloat($first)) { return 'float'; } else { return 'string'; } } } } }