GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Tags · cakephp/cache

Tags

5.4.4

Toggle 5.4.4's commit message
Fix PHPDoc types that do not match runtime behavior (#19674)

* Fix wrong Collection keys(), appendItem(), prependItem() and compile() types

keys() was documented as returning a collection of the values, but the
generator yields the keys. appendItem() and prependItem() kept the
original value type and dropped the type of the added item. compile(false)
claimed to keep the original keys while toArray(false) re-indexes them
with integers.

* Fix getMockForModel() and mockModel() return types

getMockForModel() returned the union Table|MockObject, so calling
expects() or method() on the result was reported as an undefined method.
The mock is always both, so the return is now an intersection, narrowed
to the table class when a class name is passed.

mockModel() declared (T|Table)&LegacyMockInterface, which collapses to
Table because T is bound to Table, so the template never reached the
caller. It now returns T&LegacyMockInterface for a class name.

* Fix EventManager::dispatch() and Hash::insert()/remove() types

dispatch('Some.event') leaked the unresolved TSubject template into
caller code. A string argument now yields EventInterface<object>.

Hash::insert() and Hash::remove() used a template that could not be
resolved for an ArrayAccess argument without generics, which reported
argument.templateType at the call site and widened the result to
array|ArrayAccess. A conditional return on the parameter covers both
cases without a template.

Both fixes make a baseline entry unmatched, so the entries are removed.

* Fix RedisEngine, ConsoleOptionParser and HelperRegistry docblocks

RedisEngine::$_Redis is natively typed Redis|RedisCluster, but its var
annotation only named Redis.

ConsoleOptionParser::_parseArg() was documented to return array<string>,
but arguments with a separator append the exploded array.

HelperRegistry::_create() had a second doc comment holding an obsolete
phpstan-ignore-next-line directly above the method. PHP only attaches the
last doc comment, so the real docblock with the param and return types
was ignored. The ignore is no longer needed.
  • Oct 9, 2026
  • 4beddd6
  • zip
  • tar.gz

5.4.3

Toggle 5.4.3's commit message
Fix RedisEngine TLS options silently ignored (#19611) (#19612)

Fix RedisEngine TLS options silenty ignored (#19611)

Replaces `ssl` context option key with correct `stream` key.
  • Sep 4, 2026
  • f04b3e3
  • zip
  • tar.gz

5.4.2

Toggle 5.4.2's commit message
Fix RedisEngine TLS options silently ignored (#19611) (#19612)

Fix RedisEngine TLS options silenty ignored (#19611)

Replaces `ssl` context option key with correct `stream` key.
  • Sep 4, 2026
  • f04b3e3
  • zip
  • tar.gz

5.4.1

Toggle 5.4.1's commit message
Add missing add() method to NullEngine to prevent undefined prefix ke…

…y error (#19568)

Fix NullEngine::init() to call parent and initialize _config defaults
  • Jul 28, 2026
  • 51d07d4
  • zip
  • tar.gz

5.4.0

Toggle 5.4.0's commit message
Update version constraints and branch aliases

Update split package version constraints and branch aliases to 5.5
  • Jul 19, 2026
  • 5bb927b
  • zip
  • tar.gz

5.4.0-RC2

Toggle 5.4.0-RC2's commit message
Merge branch '5.x' into 5.next

  • Jun 26, 2026
  • 83ef239
  • zip
  • tar.gz

5.3.8

Toggle 5.3.8's commit message
[Security] Add allowedClasses config to RedisEngine to prevent PHP Ob…

…ject Injection (#19485)

* security: add allowedClasses config to prevent PHP Object Injection in cache unserialize()

RedisEngine and FileEngine both call unserialize() on data fetched from their
respective backends without restricting the allowed_classes option. An attacker
who can write to the cache backend (e.g., via a compromised Redis instance,
APC race, or a cache-poisoning vulnerability in the application) can trigger
PHP Object Injection by injecting a crafted serialized payload containing a
gadget chain.

Add an 'allowedClasses' configuration option (default: true = allow all, for
backwards compatibility) to both engines. Applications that only cache scalar
or array values can set 'allowedClasses' => false to eliminate the attack
surface; applications caching known object types can enumerate only those
classes.

* revert FileEngine.php to master — only harden Redis/Memcache backends

* Add test coverage for allowedClasses and fix failing config tests

- Add the new allowedClasses key to the expected default config arrays in
  RedisEngineTest and RedisClusterEngineTest (the new option broke the
  testConfig / testConfigDsn / testConfigDsnSSLContext assertions).
- Cover the allowedClasses behavior: default (true) unserializes objects,
  false yields incomplete class instances, an array whitelist allows only
  listed classes, and scalars/arrays round-trip in every mode.
- Move the allowedClasses documentation into the class docblock option list
  to match the convention used for every other config key.

---------

Co-authored-by: XananasX7 <[email protected]>
Co-authored-by: Mark Scherer <[email protected]>
  • Jun 9, 2026
  • f24e4e0
  • zip
  • tar.gz

5.3.7

Toggle 5.3.7's commit message
[Security] Add allowedClasses config to RedisEngine to prevent PHP Ob…

…ject Injection (#19485)

* security: add allowedClasses config to prevent PHP Object Injection in cache unserialize()

RedisEngine and FileEngine both call unserialize() on data fetched from their
respective backends without restricting the allowed_classes option. An attacker
who can write to the cache backend (e.g., via a compromised Redis instance,
APC race, or a cache-poisoning vulnerability in the application) can trigger
PHP Object Injection by injecting a crafted serialized payload containing a
gadget chain.

Add an 'allowedClasses' configuration option (default: true = allow all, for
backwards compatibility) to both engines. Applications that only cache scalar
or array values can set 'allowedClasses' => false to eliminate the attack
surface; applications caching known object types can enumerate only those
classes.

* revert FileEngine.php to master — only harden Redis/Memcache backends

* Add test coverage for allowedClasses and fix failing config tests

- Add the new allowedClasses key to the expected default config arrays in
  RedisEngineTest and RedisClusterEngineTest (the new option broke the
  testConfig / testConfigDsn / testConfigDsnSSLContext assertions).
- Cover the allowedClasses behavior: default (true) unserializes objects,
  false yields incomplete class instances, an array whitelist allows only
  listed classes, and scalars/arrays round-trip in every mode.
- Move the allowedClasses documentation into the class docblock option list
  to match the convention used for every other config key.

---------

Co-authored-by: XananasX7 <[email protected]>
Co-authored-by: Mark Scherer <[email protected]>
  • Jun 9, 2026
  • f24e4e0
  • zip
  • tar.gz

5.4.0-RC1

Toggle 5.4.0-RC1's commit message
Merge branch '5.x' into 5.next

  • Mar 13, 2026
  • 99e7fe0
  • zip
  • tar.gz

5.3.6

Toggle 5.3.6's commit message
Merge pull request #19320 from cakephp/next-branch-alias

Update branch alias for 5.next => 5.4
  • Mar 9, 2026
  • cf69007
  • zip
  • tar.gz
PreviousNext
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.