/** * Add a single column to the ContentType table. * * @param \Bolt\Storage\Database\Schema\Table\ContentType $tableObj * @param \Doctrine\DBAL\Schema\Table $table * @param string $fieldName * @param array $values * @param FieldManager $fieldManager */ private function addContentTypeTableColumn(ContentType $tableObj, Table $table, $fieldName, array $values, FieldManager $fieldManager) { if ($tableObj->isKnownType($values['type'])) { // Use loose comparison on true as 'true' in YAML is a string $addIndex = isset($values['index']) && (bool) $values['index'] === true; // Add the contenttype's specific fields $tableObj->addCustomFields($fieldName, $this->getContentTypeTableColumnType($values), $addIndex); } elseif ($handler = $fieldManager->getDatabaseField($values['type'])) { // Add template fields /** @var $handler \Bolt\Storage\Field\FieldInterface */ $table->addColumn($fieldName, $handler->getStorageType(), $handler->getStorageOptions()); } }