Okay, I figured out the issue, and it affects pretty much all of these
In zend-mvc applications, we tie into zend-modulemanager, and have integration in the
Module class of each that informs
Zend\ModuleManager\Listener\ServiceListener of configuration keys associated with each plugin manager. Once bootstrap is over, it merges configuration under that key in order to configure the associated plugin manager.
What this means is that the various keys such as
form_elements, etc. have meaning in zend-mvc applications, but not currently in Expressive applications.
This is clearly a serious issue, and I'm not 100% sure how to manage it. I think we may be able to do it via the factory for each plugin manager, however. They could look for the config service and relevant config key, and, if found use the value to configure the plugin manager before returning it.
To be on the safe side, we'd check to see if the
ServiceListener service is present before doing so, as we would not want to double-inject. (That said, this approach may also mean we no longer need to use that functionality, which could be fantastic.)
I'll keep this post updated with links to pull requests as I make them.