В Symfony 2 я генерирую Bundle для хранения любого типа документа в базе данных, но мне нужен тип столбца BLOB.
Tnx на этот вопрос Я добавляю класс BlobType в DoctrineDBAL, но для использования нового типа столбца мне пришлось изменить
Doctrine \ DBAL \ Types \ Type
[...]
const BLOB = 'blob';
[...]
private static $_typesMap = array(
[...],
self::BLOB => 'Doctrine\DBAL\Types\BlobType',
);
Doctrine \ DBAL \ Platforms \MySqlPlatform (возможно, было бы лучше, если бы я изменил Doctrine \ DBAL \ Platforms \ AbstractPlatform)
[...]
protected function initializeDoctrineTypeMappings()
{
$this->doctrineTypeMapping = array(
[...],
'blob' => 'blob',
);
}
[...]
/**
* Obtain DBMS specific SQL to be used to create time fields in statements
* like CREATE TABLE.
*
* @param array $fieldDeclaration
* @return string
*/
public function getBlobTypeDeclarationSQL(array $fieldDeclaration)
{
return 'BLOB';
}
Теперь у меня нет времени на "красивое решение" , но в будущем я хотел бы восстановить классы Doctrine и иметь возможность назначать новый тип столбца в загрузочную версию Symfony 2.Я думаю, что я должен отредактировать свое приложение / bootstrap.php.cache, но я не знаю, как вмешаться.