This repository was archived by the owner on Jan 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
added failing test case regarding issue #9 #11
Closed
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
As noted in #12, that initializer does not override the EM instance if one is already present, only if none was found and/or it has no SharedEventManager composed. Thanks for the test case; I'll use this as a starting point for diagnosing the root cause. |
Please see my comment on #12 for a workaround; I'll have a new version of zend-mvc tagged shortly addressing the issue. |
weierophinney
added a commit
to weierophinney/zend-mvc
that referenced
this pull request
Aug 29, 2016
Reported in: - zendframework/zend-mvc-console#10 - zendframework/zend-mvc-console#11 - zendframework/zend-mvc-console#12 The `SendResponseListener` was lazy-instantiating an event manager on first request to `getEventManager()`. However, because initializers run after delegators, this meant that the EM instance composed did not have a shared EM instance, which triggered the initializer to re-inject, losing any listeners injected by delegators. This patch introduces a factory for the `SendResponseListener`. The factory creates the instance, and then injects it with an EM instance pulled from the container; since these are guaranteed to have a shared EM instance, the initializer will skip injection, keeping any listeners injected by delegators.
weierophinney
added a commit
to zendframework/zend-mvc
that referenced
this pull request
Aug 29, 2016
Reported in: - zendframework/zend-mvc-console#10 - zendframework/zend-mvc-console#11 - zendframework/zend-mvc-console#12 The `SendResponseListener` was lazy-instantiating an event manager on first request to `getEventManager()`. However, because initializers run after delegators, this meant that the EM instance composed did not have a shared EM instance, which triggered the initializer to re-inject, losing any listeners injected by delegators. This patch introduces a factory for the `SendResponseListener`. The factory creates the instance, and then injects it with an EM instance pulled from the container; since these are guaranteed to have a shared EM instance, the initializer will skip injection, keeping any listeners injected by delegators.
To get the fix, please update your zend-mvc to 3.0.3: $ composer require "zendframework/zend-mvc:^3.0.3" |
weierophinney
added a commit
that referenced
this pull request
Aug 29, 2016
added failing test case regarding issue #9
weierophinney
added a commit
that referenced
this pull request
Aug 29, 2016
weierophinney
added a commit
that referenced
this pull request
Aug 29, 2016
Updates the test written for #11, and modifies it as follows: - Uses the new `SendResponseListenerFactory` to create the `SendResponseListener` instance. - Registers the `ConsoleResponseSenderDelegatorFactory` directly in the test setup, instead of wrapping it in a callable; we're only interested in the final state of the event manager. - Updates the minimum zend-mvc requirement to 3.0.3, which introduces the `SendResponseListenerFactory`.
weierophinney
added a commit
that referenced
this pull request
Aug 29, 2016
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Should be also related to issue #10.
Because of the
EventManagerAwareInitializer
that is set inServiceManagerConfig
the already configuredEventManager
inSendResponseListener
gets overridden and theConsoleResponseSender
is missing. Therefore any console related response can not be rendered.