[Autocomplete] Reset form state on each request for applications that reuse the Symfony application between requests #2094
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.
Hi there, in ux-autocomplete there is an WrappedEntityTypeAutocompleter::getForm which on first call saves form instance in WrappedEntityTypeAutocompleter $form property, it has method setOptions which is called on each request in EntityAutocompleteController, in PHP-FPM everything will work as expected where container is created on each request, but with Swoole or similar where container is not created on each request rather only first request on first EntityAutocompleteController request everything is also fine, but on second request WrappedEntityTypeAutocompleter will have an instance of form from previous request which is fine but the call of setOptions in controller will throw exception.
So in Swoole on second and next requests $this->form already contains an instance of form from previous request because DI Container is not created on each request as in PHP-FPM (Container is created only once) and exception is thrown. So, Symfony have an kernel.reset / kernel.terminate event which probably can be used here to reset $this->form in WrappedEntityTypeAutocompleter because they are fired after request is completed.