[9.x] Ignore empty redis username string in PhpRedisConnector
#41773
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.
A username option was added to the
PhpRedisConnector
in #41683.However, some services, such as Heroku, produce a
REDIS_URL
connection string that has an empty username part.This is causing the following exception:
So given the following
REDIS_URL
format:The following url string, with a blank username, will thrown an error.
Solution
I have added an extra check to ensure that the provided username isn't an empty string before attempting to use it.
Considerations
I have used a
$config['username'] !== ''
check rather than! empty($config['username'])
in the small off chance that the username value is falsey (eg0
).You might just say why not update the
REDIS_URL
and replace the empty username part withnull
.That's possible, but the issue is services such as Heroku will generate these
REDIS_*
variables at any time, such as when upgrading the redis instance, so it would need to be manually changed each time the credentials were generated.Tests
Sorry, I couldn't see any existing tests for this class so wasn't quite sure where to begin.
Feel free to point me in the right direction if a test is required for this.