New features galore!!! (and a tiny pinch of BC breackage)
Pre-release
Pre-release
- New: updating and deleting of Users, User Groups, Roles and Content Types now accepts more flexible definitions of the elements to act upon, and comprehensive resolution of references
- New: it is now possible to assign a section when creating and updating Contents
- New: it is now possible to assign an owner when creating and updating Contents
- New: it is now possible to set publication and modification dates when creating and updating Contents
- New: it is now possible to assign object states when creating and updating Contents
- New: it is now possible to assign a remote id for the Location when creating Contents
- New: references are now resolved for user_id and group_id when assigning Roles
- New: the
main_location
andother_locations
tags in Content creation, as well asparent_location
in Location creation will now try to identify the desired Location by its remote id when a non integer value is used - New: the content_type_group tags in ContentType creation will accept a Content Type Group identifier besides an id
- New: added 2 events to which you can listen to implement custom logic just-before and just-after migration steps are executed:
- ez_migration.before_execution => listeners receive a BeforeStepExecutionEvent event instance
- ez_migration.step_executed => listeners receive a StepExecutedEvent event instance
- Fixed: migrations will not silently swallow any more errors when creating users or assigning roles and an inexisting group is specified
- New: it is now possible to add resolvers for custom references using tagged services. The tag to use is:
ez_migration_bundle.reference_resolver.customreference
. For an example, see the test UnitTestOK010_customrefs.yml and class Kaliop\eZMigrationBundle\Tests\helper\CustomReferenceResolver - New: it is now possible to inject field type handlers for scalar field types, as well as for field type handlers that only affect the field type of a single content type. This gives greater flexibility in deciding which types of references are resolved for each field when creating or updating contents
- Changed: removed unused Behat and Phpunit tests as well as one leftover Interface
- Changed: removed from the YML documentation the description of keys which had been deprecated in version 2. The keys are still accepted, but support for them will be dropped in a future version
- Changed: the service ez_migration_bundle.reference_resolver.content is now deprecated and will be removed in a future version
- Changes to the YML definition language:
- Updating and deleting of Users, User Groups, Roles and Content Types: usage of a
match
key is allowed; previous ways of defining elements to match are deprecated - new tags
modification_date
,section
,object_states
andowner
are available for content creation and update - content creation supports the following new tags:
is_hidden
,sort_field
,sort_order
,location_remote_id
- content update supports the following new tags:
creation_date
- location creation and update now support the tag
parent_location
as preferred form forparent_location_id
. The former variant is considered deprecated and will be desupported in a future version
- Updating and deleting of Users, User Groups, Roles and Content Types: usage of a
- BC BREAKS:
- when deleting users, a single migration step can not be used any more to match users based at the same time on id, email and login. Use separate steps for that
- when creating an object and defining its remote_id, the location remote_id is not automatically set any more. On the other hand, it is possible to set the location remote id explicitly using tag
location_remote_id
- when adding locations without defining sort field and sort order, the defaults from the content type definition are used, instead of publication-date/asc
- references to 'tag:' and 'location:' will not be resolved any more in fields of type Object Relation and Object Relation List. On the other hand non-integer strings will be resolved as remote-content-ids
- changes for developers who extended the bundle: the MatcherInterface and ReferenceResolverInterface have a new method each; many Executor services now have a different constructor signature; one Trait has been removed from the public API; the service ez_migration_bundle.helper.role_handler has been renamed to ez_migration_bundle.helper.limitation_converter; the chainResolver will now apply reference transformation from all matching sub-resolvers, not only from the 1st one