Jsor\Doctrine\PostGIS\Event\DBALSchemaEventSubscriber::onSchemaColumnDefinition PHP Method

onSchemaColumnDefinition() public method

public onSchemaColumnDefinition ( Doctrine\DBAL\Event\SchemaColumnDefinitionEventArgs $args )
$args Doctrine\DBAL\Event\SchemaColumnDefinitionEventArgs
    public function onSchemaColumnDefinition(SchemaColumnDefinitionEventArgs $args)
    {
        $tableColumn = array_change_key_case($args->getTableColumn(), CASE_LOWER);
        $table = $args->getTable();
        $info = null;
        if ('geometry' === $tableColumn['type']) {
            $info = $this->schemaManager->getGeometrySpatialColumnInfo($table, $tableColumn['field']);
        } elseif ('geography' === $tableColumn['type']) {
            $info = $this->schemaManager->getGeographySpatialColumnInfo($table, $tableColumn['field']);
        }
        if (!$info) {
            return;
        }
        $default = null;
        if (isset($tableColumn['default']) && 'NULL::geometry' !== $tableColumn['default'] && 'NULL::geography' !== $tableColumn['default']) {
            $default = $tableColumn['default'];
        }
        $options = array('notnull' => (bool) $tableColumn['isnotnull'], 'default' => $default, 'primary' => (bool) ($tableColumn['pri'] == 't'), 'comment' => isset($tableColumn['comment']) ? $tableColumn['comment'] : null);
        $column = new Column($tableColumn['field'], PostGISType::getType($tableColumn['type']), $options);
        $column->setCustomSchemaOption('geometry_type', $info['type'])->setCustomSchemaOption('srid', $info['srid']);
        $args->setColumn($column)->preventDefault();
    }