dereuromark/cakephp-shim
A CakePHP plugin to shim applications between major framework versions.
3.9.1
1.2M downloads/mo
#4433 most downloaded on Packagist
dereuromark/cakephp-shim
What this package is like to depend on
Last release 3 months ago
25 May 2026
Release timing varies
gaps range from 2 weeks to 6 months
Rarely documented
notes for 10 of 85 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
87 releases · first in 2015
6 releases in the last 12 months
see the full history below
Release timeline
87 releases · Feb 2015 to May 2026Releases
latest 60 of 87-
3.9.125 May 2026Release notes
Open source →Fixes
- Fix three bugs: record() get() arguments, File::read() trim handling, and beforeFind() order opt-out (#127)
Full Changelog: 3.9.0...3.9.1
-
3.9.002 May 2026Release notes
Open source →Fixes
Database\Type\YearType::toDatabase()andmarshal()now actually cast the input toint, matching their?intreturn signature. Previously they returned the raw$value(typically a numeric string) underdeclare(strict_types=1), breaking the declared contract (#124).Model\Table\Table::saveAll()no longer folds per-row save results via bitwise&— that operator coerced the accumulator tointafter the first iteration, so callers using strict comparisons (=== true) saw1instead oftrue. Replaced with a proper bool early-out (#124).View\Widget\DateTimeWidget::_deconstructDate()now reads the AM/PM character from the same source it checked ($value['meridian']) instead of the str-padded copy, eliminating a long-standing decoupling between conditional and read paths (#125).Model\Table\Table::delete()restores the parent's typedarray $optionsparameter. The previous override widened it to bare$optionsplus a runtimeis_array()check that was dead underdeclare(strict_types=1)(#125).LegacyModelAwareTrait::loadModel()now guards_modelFactorieswithproperty_exists(). CakePHP 5.x removedModelAwareTrait, so consumers that don't redeclare the property no longer trip an undeclared-dynamic-property warning under PHP 8.2+ — the lookup falls back cleanly toFactoryLocator::get()(#125).Filesystem\Folder::isAbsolute(),isWindowsPath(), andisRegisteredStreamWrapper()now castpreg_match()results toboolexplicitly so the: boolcontract holds under stricter PHPStan rules. The Windows-path check also moves tostr_starts_with()(#125).Deprecations.phpnow validates theShim.deprecationTypeconfig value against the levelstrigger_error()actually accepts (E_USER_NOTICE/WARNING/DEPRECATED/ERROR), falling back toE_USER_DEPRECATED. A misconfigured value likeE_NOTICEpreviously crashed the shim's own deprecation pathway with aValueErroron PHP 8+ (#125).
Improvements
Controller\Component\RequestHandlerComponent::accepts()andprefers()no longer carry the misleadingdeprecated 4.4.0doc tag inherited from upstream. The shim's purpose is to keep these methods available for consumers who have not yet migrated toContentTypeNegotiation::prefersChoice()/Controller::getViewClasses()— flagging them deprecated inside the shim was misleading IDEs and consumers (#125).Model\Table\Table::record()uses PHP 8 capture-omitcatch (RecordNotFoundException)instead of an emptycatch (RecordNotFoundException $e) {}body that PSR2R / phpcs flagged (#125).TestSuite\TestTrait::invokeMethod()andinvokeProperty()drop the redundant&on theobjectparameter — objects are passed by handle in PHP, so the reference was dead syntax. Subclasses overriding these (e.g.EntityAnnotatorTest) must drop the&from their override signature; updated in this release (#125).Deprecations.phpnow declaresstrict_types=1, matching the rest ofsrc/(#125).
Full Changelog: 3.8.5...3.9.0
-
3.8.502 May 2026Release notes
Open source →Fixes
- Fix SetTrait magic setOrFail off-by-one in argument index - #123
Full Changelog: 3.8.4...3.8.5
-
3.8.420 Apr 2026Release notes
Open source →Improvements
- Forward
TEntitytemplate fromCake\ORM\TablethroughShim\Model\Table\Tableso subclasses can type their entity for PHPStan. Requires CakePHP 5.3.4+ to resolve against a two-genericCake\ORM\Table.
Full Changelog: 3.8.3...3.8.4
- Forward
-
3.8.307 Feb 2026Release notes
Open source → -
3.8.228 Oct 2025 -
3.8.121 Jul 2025 -
3.8.028 Jun 2025Release notes
Open source →Improvements
- Fixed
find('list')to auto-use correct fields for 2 (or 1) select fields given. Shims old 3.x behavior again. - Added LegacyModelAwareClassAnnotatorTask for
loadModel()calls
- Fixed
-
3.7.217 May 2025 -
3.7.106 May 2025 -
3.7.001 May 2025Nothing published for this version
-
3.6.118 Apr 2025Nothing published for this version
-
3.6.018 Apr 2025Nothing published for this version
-
3.5.005 Apr 2025Nothing published for this version
-
3.4.003 Apr 2025Nothing published for this version
-
3.3.025 Sep 2024Nothing published for this version
-
3.2.306 Apr 2024Nothing published for this version
-
3.2.212 Feb 2024Nothing published for this version
-
3.2.107 Dec 2023Nothing published for this version
-
3.2.005 Dec 2023Nothing published for this version
-
3.1.127 Nov 2023Nothing published for this version
-
3.1.001 Nov 2023Nothing published for this version
-
3.0.130 Sep 2023Nothing published for this version
-
3.0.028 Sep 2023Nothing published for this version
-
3.0.0-RC10 Sep 2023 pre-releaseNothing published for this version
-
2.4.105 Aug 2022Nothing published for this version
-
2.4.013 Jan 2022Nothing published for this version
-
2.3.001 Nov 2021Nothing published for this version
-
2.2.030 Jun 2021Nothing published for this version
-
2.1.128 Apr 2021Nothing published for this version
-
2.1.015 Sep 2020Nothing published for this version
-
2.0.119 Apr 2020Nothing published for this version
-
2.0.014 Jan 2020Nothing published for this version
-
2.0.0-beta27 Dec 2019 pre-releaseNothing published for this version
-
1.10.218 Apr 2020Nothing published for this version
-
1.10.105 Dec 2019Nothing published for this version
-
1.10.014 Aug 2019Nothing published for this version
-
1.9.030 Jul 2019Nothing published for this version
-
1.8.306 Jun 2019Nothing published for this version
-
1.8.211 May 2019Nothing published for this version
-
1.8.108 May 2019Nothing published for this version
-
1.8.006 May 2019Nothing published for this version
-
1.7.219 Nov 2018Nothing published for this version
-
1.7.128 Oct 2018Nothing published for this version
-
1.7.019 Apr 2018Nothing published for this version
-
1.6.121 Jan 2018Nothing published for this version
-
1.6.027 Dec 2017Nothing published for this version
-
1.5.017 Apr 2017Nothing published for this version
-
1.4.219 Feb 2017Nothing published for this version
-
1.4.112 Feb 2017Nothing published for this version
-
1.4.003 Nov 2016Nothing published for this version
-
1.3.028 Oct 2016Nothing published for this version
-
1.2.025 Jan 2016Nothing published for this version
-
1.1.012 Jan 2016Nothing published for this version
-
1.0.507 Jan 2016Nothing published for this version
-
1.0.403 Jan 2016Nothing published for this version
-
1.0.330 Dec 2015Nothing published for this version
-
1.0.215 Nov 2015Nothing published for this version
-
1.0.131 May 2015Nothing published for this version
-
1.0.007 May 2015Nothing published for this version