Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Ensure form_elements config is honored in non-zend-mvc contexts #164

Conversation

weierophinney
Copy link
Member

@weierophinney weierophinney commented May 16, 2017

Per https://discourse.zendframework.com/t/validatormanager-not-calling-custom-validator-factory/109/5?u=matthew the form_elements config key is not honored currently unless the application is within a zend-mvc context. This is due to the fact that Zend\Form\Module wires configuration for the Zend\ModuleManager\Listener\ServiceListener in order to push merged service configuration into the plugin during bootstrap; no similar logic is available when not in a zend-mvc context, however.

This patch fixes that situation by modifying the FormElementManagerFactory to do the following:

  • If a ServiceListener service exists, it returns the plugin manager immediately (old behavior).
  • Otherwise, it checks for the config service, and, if found, a form_elements key with an array value. When found, it feeds that value to a Zend\ServiceManager\Config instance and uses that to configure the plugin manager before returning it.

Per https://discourse.zendframework.com/t/validatormanager-not-calling-custom-validator-factory/109/5?u=matthew
the `form_elements` config key is not honored currently unless the
application is within a zend-mvc context. This is due to the fact that
`Zend\Validator\Module` wires configuration for the
`Zend\ModuleManager\Listener\ServiceListener` in order to push merged
service configuration into the plugin during bootstrap; no similar logic
is available when not in a zend-mvc context, however.

This patch fixes that situation by modifying the
`FormElementManagerFactory` to do the following:

- If a `ServiceListener` service exists, it returns the plugin manager
  immediately (old behavior).
- Otherwise, it checks for the `config` service, and, if found, a
  `form_elements` key with an array value. When found, it feeds that value
  to a `Zend\ServiceManager\Config` instance and uses that to configure
  the plugin manager before returning it.
Had copy-pasta'd from zend-validator; fixed names to reflect this
component.
@weierophinney weierophinney merged commit 8caf7c2 into zendframework:master May 18, 2017
weierophinney added a commit that referenced this pull request May 18, 2017
weierophinney added a commit that referenced this pull request May 18, 2017
weierophinney added a commit that referenced this pull request May 18, 2017
@weierophinney weierophinney deleted the hotfix/form_elements-service-config branch May 18, 2017 14:25
@weierophinney weierophinney added this to the 2.10.2 milestone May 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant