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.
[FrameworkBundle] Fix service reset between tests #58240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FrameworkBundle] Fix service reset between tests #58240
Changes from all commits
fb1ae1a
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$container->reset()
must still be called, to reset the instances hold by the container itself (see the code of line 302).Btw, if you ensure that the
services_resetter
service is instantiated, the container reset call will then call it (as ServiceResetter implements the ResetInterface).The reason it was not called is because
Container::reset
only resets instantiated resettable servicesThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@stof Fixed, see https://github.com/symfony/symfony/compare/549ada5257c771da92d51aff76e224e1ac5d31f4..5491aa54a3205acfaf5ba62c134bddc26d794a36
Initially, I wanted to just instantiate the
services_resetter
and letContainer::reset()
call reset on it, but that didn’t work because theservices_resetter
only resets instantiated services. Because of line 302, by the time it’s called, there aren’t any instantiated services left.The downside of the current approach is that some services will get reset twice, but I don’t see a better solution at the moment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah indeed. The container resets itself before resetting the services.
I think this might actually be an issue if the
reset
method of a service triggers the instantiation of some other service. I think the resetting of the container state should probably be moved after the loop.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@stof Done https://github.com/symfony/symfony/compare/5491aa54a3205acfaf5ba62c134bddc26d794a36..53d0f56be6a315055cb3ceef09a7f6bcb233a120