Esempio n. 1
0
 /**
  * Build a Doctrine column object for TYPE/TYPE columns.
  *
  * @param array $tableColumn
  * @param \Doctrine\DBAL\Platforms\AbstractPlatform $platform
  * @return \Doctrine\DBAL\Schema\Column
  * @throws \Doctrine\DBAL\DBALException
  * @todo: The $tableColumn source currently only support MySQL definition style.
  */
 protected function getEnumerationTableColumnDefinition(array $tableColumn, AbstractPlatform $platform) : Column
 {
     $options = ['length' => $tableColumn['length'] ?: null, 'unsigned' => false, 'fixed' => false, 'default' => $tableColumn['default'] ?: null, 'notnull' => (bool) ($tableColumn['null'] !== 'YES'), 'scale' => null, 'precision' => null, 'autoincrement' => false, 'comment' => $tableColumn['comment'] ?: null];
     $dbType = $this->getDatabaseType($tableColumn['type']);
     $doctrineType = $platform->getDoctrineTypeMapping($dbType);
     $column = new Column($tableColumn['field'], Type::getType($doctrineType), $options);
     $column->setPlatformOption('unquotedValues', $this->getUnquotedEnumerationValues($tableColumn['type']));
     return $column;
 }
Esempio n. 2
0
 public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
 {
     if (!isset($fieldDeclaration['length'])) {
         $fieldDeclaration['length'] = 255;
     }
     $length = $fieldDeclaration['length'];
     if ($length > 4000) {
         return $platform->getDoctrineTypeMapping('longblob');
     }
     $fixed = isset($fieldDeclaration['fixed']) ? $fieldDeclaration['fixed'] : false;
     return ($fixed ? 'BINARY(' : 'VARBINARY(') . $length . ')';
 }
Esempio n. 3
0
 /**
  * Gets the SQL declaration snippet for a field of this type.
  *
  * @param array $fieldDeclaration The field declaration.
  * @param AbstractPlatform $platform The currently used database platform.
  * @return string
  */
 public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
 {
     return $platform->getDoctrineTypeMapping('BLOB');
 }
Esempio n. 4
0
 public function getSqlDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
 {
     // return the SQL used to create your column type. To create a portable column type, use the $platform.
     return $platform->getDoctrineTypeMapping('bit');
 }
Esempio n. 5
0
 /**
  * @param array $fieldDeclaration
  * @param AbstractPlatform $platform
  * @return string
  * @throws \Doctrine\DBAL\DBALException
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function getSqlDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
 {
     return $platform->getDoctrineTypeMapping('varchar[]');
 }
 public function testRegisterDoctrineMappingType()
 {
     $this->_platform->registerDoctrineTypeMapping('foo', 'integer');
     $this->assertEquals('integer', $this->_platform->getDoctrineTypeMapping('foo'));
 }
 public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
 {
     return $platform->getDoctrineTypeMapping(static::ARRAY_INT);
 }