Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.7k
[Cache] Handle arbitrary key length when the backend cant using hashing#20037
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
| return$this->namespace.$key; | ||
| } | ||
| if (strlen($id =$this->namespace.$key) >$this->maxIdLength) { | ||
| $id =$this->namespace.substr_replace(base64_encode(md5($key,true)),':', -2); |
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.
Namespace excluded, this is always 23 chars long, trailing padding= removed.
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.
The added trailing: is to prevent any collision between hashed keys and non-hasked keys.
| CacheItem::validateKey($version); | ||
| if (!apcu_exists($version.':'.$namespace)) { | ||
| if (!apcu_exists($version.'@'.$namespace)) { |
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.
Just because: is a nice separator for namespace, thus had to change here.@ looks good also for version :)
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.
It's all about the looks ;)
| protectedfunction__construct($namespace ='',$defaultLifetime =0) | ||
| { | ||
| $this->namespace ='' ===$namespace ?'' :$this->getId($namespace); | ||
| $this->namespace ='' ===$namespace ?'' :$this->getId($namespace).':'; |
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.
: is a reserved char per psr6 so we use it internally to be free from any collision when concatenating keys and namespace later on
fabpot commentedSep 24, 2016
Thank you@nicolas-grekas. |
…ant using hashing (nicolas-grekas)This PR was merged into the 3.2-dev branch.Discussion----------[Cache] Handle arbitrary key length when the backend cant using hashing| Q | A| ------------- | ---| Branch? | master| Bug fix? | no| New feature? | yes| BC breaks? | no| Deprecations? | no| Tests pass? | yes| Fixed tickets | -| License | MIT| Doc PR | -Saving some bits from#19521 :) Already awaited by PdoAdapter which defines the property.Commits-------11f448f [Cache] Handle arbitrary key length when the backend cant using hashing
Uh oh!
There was an error while loading.Please reload this page.
Saving some bits from#19521 :) Already awaited by PdoAdapter which defines the property.