- Fix user role formatting with custom user providers implementing Symfony >= 4.3 api properly
- Resolve Symfony >= 4.3 deprecations injecting user role names into custom event scope
- Resolve Doctrine DBAL >= 2.11 deprecations / DBAL 3.x errors
- Fix errors saving boolean values into numeric column (convert to 0 or 1)
- Re-add support for explicitly preconfiguring source table srid on FeatureType; only used if detection fails (e.g. views using geometry expressions)
- Fix missing detection for native double precision columns when picking default for non-nullable numeric column (see Mapbender #1396)
- Fix explicitly entered "0" not saving to nullable numeric columns
- Fix incompatibility with current doctrine/doctrine-bundle
- Fix geometries returned from insert reverting to table native CRS
- Fix error in save method if saving was aborted by a custom event
- Fix error in first invocation of getDataStoreByName
- Fix missing id on inserted item
Symfony 4+ conformance and pruning of legacy complexity.
- Extend magic :userName filter param support also to "where" param passed into search / count
- Removed Symfony 4-incompatible BaseElement class
- Removed Symfony 4-incompatible global default services
data.source
andfeatureTypes
. Access should be replaced with a self-defined service. Use RepositoryRegistry base class and inject the appropriate factory. - Removed geojson briding and phayes/geophp dependency
- Removed legacy export bridging logic
- Removed tolerance / preprocessing for SQL-illegal quotes around
:userName
parameter binding infilter
setting - Removed undocumented Postgis only "source" + "distance" search parameter handling (use "intersect")
- Removed legacy bridging logic for vis-ui file uploads (getFileUri etc)
- Removed variadic return type support from getByIds (always returns DataItem[] / Feature[])
- Removed ill-advised Pgrouting integration
- Removed ill-advised legacy "tree" logic (getTree, getParent, getChildren etc)
- Removed ill-advised "mapping" logic (perform a separate search on the target repository)
- Removed support for events before / after search; configure a "filter" SQL expression or pass a "where"
- Removed FeatureTypeService::search method
- Removed public access to "driver" internals
- Removed variadic DataStore / FeatureType "get" method (use getById)
- Removed variadic DataStore / FeatureType "delete" method argument support
- Removed support for any non-array, non-DataItem arguments to save, update, insert
- Removed project support hack replacing malformed EWKT with empty point EWKT on storage; users must supply sane geometries
- Removed support for automatic yaml file parsing when constructing FeatureTypeService
NOTE: there are no longer any considerations for external calls to FeatureType / DataStore constructors. Use the appropriate
factory service (mbds.default_datastore_factory
or mbds.default_featuretype_factory
) to instantiate
DataStore / FeatureType manually.
NOTE: Users requiring a registry of multiple DataStores / FeatureTypes, to replace removed
data.source
and featureTypes
services, must define their own service. Use
RepositoryRegistry and inject the appropriate factory plus DataStore / FeatureType configs.
DataStoreService and FeatureTypeService classes are and will remain incompatible with
Symfony 4.
- Fix errors saving boolean values into numeric column (convert to 0 or 1)
- Re-add support for explicitly preconfiguring source table srid on FeatureType; only used if detection fails (e.g. views using geometry expressions)
- Fix missing detection for native double precision columns when picking default for non-nullable numeric column (see Mapbender #1396)
- Fix explicitly entered "0" not saving to nullable numeric columns
- Fix incompatibility with current doctrine/doctrine-bundle
- Fix geometries returned from insert reverting to table native CRS
- Fix error in first invocation of getDataStoreByName
- Fix connection access error when using plain RepositoryRegistry (Sf4 conformant version of DataStoreService / FeatureTypeService)
- Fix missing id on inserted item
- Fix registry constructor signature incompatibility with 0.2.x
- Fix DataStore vs FeatureType event handling differences
- Fix Feature::getType
- Fix geometry not available from Feature::getAttributes
- Fix getByIds method not available on plain DataStore, only on FeatureType
- Fix errors updating / reinserting any items returned from (deprecated) "getTree"
- Oracle: fix error detecting column names (without explicit
fields
setting) - Oracle: fix missing column identifier quoting in intersect condition
- PostgreSQL: fix errors on tables with mixed / uppercase column names
- Fix unreliable type (sometimes array, sometimes DataItem / Feature) of "item" value in save events
- Fix inconsistent item data renormalization "save" method (item reloaded + renormalized) vs direct usage of "update" / "insert" methods (item passed back as is)
- Fix item attribute name renormalization not respecting case of explicitly configured fields
- Strictness: referencing non-existant columns in explicitly configured
fields
is now an error - Strictness: explicitly configured "fields" can no longer be quoted or aliased; use strictly column names
- Strictness: including
*
in explicitly configured "fields" will now cause errors; use strictly column names, or leave fields completely empty - Strictness: mis-cased configuration values are no longer valid
- Ignore
srid
setting (always detect from database) - Add
count
method on DataStore / FeatureType (same argument style assearch
method) - Add standalone DataStore / FeatureType factory services (
mbds.default_datastore_factory
,mbds.default_featuretype_factory
) - Resolve / mark misc internal deprecations
- Misc restructuring for Symfony 4+ compatibility
- Update documentation
- PostgreSQL: fix mistyped update / insert column value when submitting an empty string to column of ~numeric type
- PostgreSQL: fix mistyped column values on insert / errors inserting incomplete data in row with incomplete defaults definition
- Make DataStore insertItem method public (like updateItem)
- Resolve / mark misc internal deprecations
- Extend file upload support to both DataStore and FeatureType (previously only FeatureType)
- Fix potentially broken id of newly saved items / features on PostgreSQL
- Fix FeatureType::insert method accepting prepopulated id
- Fix geometry type detection on valid WKT with empty coordinates
- Fix Ewkt handling in Feature::setGeom
- Fix reprojection errors on insert
- Fix Postgis column srid detection
- Fix intersection query errors with small intersect geometries on degree-based CRS
- Prefer database-detected column srid over (error prone)
srid
value from feature type configuration - Run all insert / update geometries through
ST_MakeValid
on Postgis to avoid collateral intersection query errors
- Fix DataStore-only errors on updates with reserved words as column names (e.g. PostgreSQL "public")
- Fix SELECT queries with reserved words as column names (e.g. PostgreSQL "public")
- Fix UPDATEs and INSERTs writing values to type BOOLEAN columns on PostgreSQL
- Fix inability to write NULL into nullable columns with non-null defaults on INSERT on PostgreSQL
- Fix PHP7.0 method signature error (PR#15)
- Fix Postgis intersection condition not matching self-intersecting geometries
- Fix row loading limit
- Added misc BaseElement child class customization support methods
getDataStoreKeyInSchemaConfig
getDataStoreKeyInFormItemConfig
- Fix Oracle bounding-box intersection query (PR#14)
- Fix DataStore empty item initialization
- Fix DataStore getById
- Fix error handling when saving
- Fix Feature initialization from GeoJSON: respect configured
geomField
, apply optional non-standard embeddedsrid
andid
correctly - Fix broken data format in Oracle::prepareResults
- Fix exception on table miss in DataStore::getById, return null instead
- Change FeatureType::getById return value on table miss from
false
tonull
- Support
:userName
filter binding also in DataStore::search (previously only in FeatureType::search) - Escape
:userName
properly in FeatureType::search and DataStore::search - Escape
:distance
in FeatureType::search (now a bound param) - Extract FeatureType / DataStore method
addCustomSearchCritera
method for customization support - Add DataStoreService::getDbalConnectionByName method
getUniqueId
andgetTablename
methods are now also available on DataStore object (previously only FeatureType)- Deprecate DataItem construction with a (jsonish) string
- Deprecate magic Feature::__toString invocation
- Make tests with missing prerequisites fail instead of skip
- Fix broken select item options when combining static options with
sql
-path options - Customization support: extracted methods from
BaseItem::prepareItem
- prepareSelectItem
- formatSelectItemOption
- formatStaticSelectItemOptions
- prepareSqlSelectItem
- formatSqlSelectItemOption
- prepareDataStoreSelectItem
- prepareServiceSelectItem
- getDataStoreService
- getDbalConnectionByName
- Disambiguate
DataStoreService::get
andFeatureTypeService::get
by addinggetDataStoreByName
andgetFeatureTypeByName
methods- Extract factory methods for customization support
- Remove invalid default service id
default
from dataStore select item path;serviceName
is no longer optional - Log warning on redundant combination of "dataStore" / "sql" / "service" select item configuration
- Emit more specific errors for missing / type mismatched driver configuration values