Usually there needs to be a couple of things that need to happen in most complex profiles (beyond the validation)
mapping form submission values to contact fields (and custom contact fields)
mapping form submission values participant fields (and custom participant fields)
This is needed if the submission field name doesn't match the (APIv3) custom field name.
This mapping is currently mostly implemented via Symfony hook on the civi.remoteevent.registration.submit event. This however, makes re-using the code difficult.
I would suggest to add a dummy adjustContactData(RegistrationEvent) and a dummy adjustPartipantData(RegistrationEvent) function, that is automatically called. This way, profile implementations can override these to ship the mappings along with the profile, and no need for registering to the symfony events.
Usually there needs to be a couple of things that need to happen in most complex profiles (beyond the validation)
This mapping is currently mostly implemented via Symfony hook on the
civi.remoteevent.registration.submit
event. This however, makes re-using the code difficult.I would suggest to add a dummy
adjustContactData(RegistrationEvent)
and a dummyadjustPartipantData(RegistrationEvent)
function, that is automatically called. This way, profile implementations can override these to ship the mappings along with the profile, and no need for registering to the symfony events.