PackageTrack
Sign in Get early access

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 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 87
  1. 3.9.1 25 May 2026
    Release notes

    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

    Open source →
  2. 3.9.0 02 May 2026
    Release notes

    Fixes

    • Database\Type\YearType::toDatabase() and marshal() now actually cast the input to int, matching their ?int return signature. Previously they returned the raw $value (typically a numeric string) under declare(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 to int after the first iteration, so callers using strict comparisons (=== true) saw 1 instead of true. 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 typed array $options parameter. The previous override widened it to bare $options plus a runtime is_array() check that was dead under declare(strict_types=1) (#125).
    • LegacyModelAwareTrait::loadModel() now guards _modelFactories with property_exists(). CakePHP 5.x removed ModelAwareTrait, 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 to FactoryLocator::get() (#125).
    • Filesystem\Folder::isAbsolute(), isWindowsPath(), and isRegisteredStreamWrapper() now cast preg_match() results to bool explicitly so the : bool contract holds under stricter PHPStan rules. The Windows-path check also moves to str_starts_with() (#125).
    • Deprecations.php now validates the Shim.deprecationType config value against the levels trigger_error() actually accepts (E_USER_NOTICE / WARNING / DEPRECATED / ERROR), falling back to E_USER_DEPRECATED. A misconfigured value like E_NOTICE previously crashed the shim's own deprecation pathway with a ValueError on PHP 8+ (#125).

    Improvements

    • Controller\Component\RequestHandlerComponent::accepts() and prefers() no longer carry the misleading deprecated 4.4.0 doc tag inherited from upstream. The shim's purpose is to keep these methods available for consumers who have not yet migrated to ContentTypeNegotiation::prefersChoice() / Controller::getViewClasses() — flagging them deprecated inside the shim was misleading IDEs and consumers (#125).
    • Model\Table\Table::record() uses PHP 8 capture-omit catch (RecordNotFoundException) instead of an empty catch (RecordNotFoundException $e) {} body that PSR2R / phpcs flagged (#125).
    • TestSuite\TestTrait::invokeMethod() and invokeProperty() drop the redundant & on the object parameter — 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.php now declares strict_types=1, matching the rest of src/ (#125).

    Full Changelog: 3.8.5...3.9.0

    Open source →
  3. 3.8.5 02 May 2026
    Release notes

    Fixes

    • Fix SetTrait magic setOrFail off-by-one in argument index - #123

    Full Changelog: 3.8.4...3.8.5

    Open source →
  4. 3.8.4 20 Apr 2026
    Release notes

    Improvements

    • Forward TEntity template from Cake\ORM\Table through Shim\Model\Table\Table so subclasses can type their entity for PHPStan. Requires CakePHP 5.3.4+ to resolve against a two-generic Cake\ORM\Table.

    Full Changelog: 3.8.3...3.8.4

    Open source →
  5. 3.8.3 07 Feb 2026
    Release notes

    Fixes

    • Fix null array offset deprecation (PHP 8.5+)

    Full Changelog: 3.8.2...3.8.3

    Open source →
  6. 3.8.2 28 Oct 2025
    Release notes

    Fixes

    • Removed deprecations

    Full Changelog: 3.8.1...3.8.2

    Open source →
  7. 3.8.1 21 Jul 2025
    Release notes

    Fixes

    • Fix up groupBy() shim for Paginator.
    Open source →
  8. 3.8.0 28 Jun 2025
    Release notes

    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
    Open source →
  9. 3.7.2 17 May 2025
    Release notes

    Fixes

    • Fixed more timezone handling for DateTime dropdowns
    Open source →
  10. 3.7.1 06 May 2025
    Release notes

    Fixes

    • Fixed timezone handling for DateTime dropdowns
    Open source →
  11. 3.7.0 01 May 2025

    Nothing published for this version

  12. 3.6.1 18 Apr 2025

    Nothing published for this version

  13. 3.6.0 18 Apr 2025

    Nothing published for this version

  14. 3.5.0 05 Apr 2025

    Nothing published for this version

  15. 3.4.0 03 Apr 2025

    Nothing published for this version

  16. 3.3.0 25 Sep 2024

    Nothing published for this version

  17. 3.2.3 06 Apr 2024

    Nothing published for this version

  18. 3.2.2 12 Feb 2024

    Nothing published for this version

  19. 3.2.1 07 Dec 2023

    Nothing published for this version

  20. 3.2.0 05 Dec 2023

    Nothing published for this version

  21. 3.1.1 27 Nov 2023

    Nothing published for this version

  22. 3.1.0 01 Nov 2023

    Nothing published for this version

  23. 3.0.1 30 Sep 2023

    Nothing published for this version

  24. 3.0.0 28 Sep 2023

    Nothing published for this version

  25. 3.0.0-RC 10 Sep 2023 pre-release

    Nothing published for this version

  26. 2.4.1 05 Aug 2022

    Nothing published for this version

  27. 2.4.0 13 Jan 2022

    Nothing published for this version

  28. 2.3.0 01 Nov 2021

    Nothing published for this version

  29. 2.2.0 30 Jun 2021

    Nothing published for this version

  30. 2.1.1 28 Apr 2021

    Nothing published for this version

  31. 2.1.0 15 Sep 2020

    Nothing published for this version

  32. 2.0.1 19 Apr 2020

    Nothing published for this version

  33. 2.0.0 14 Jan 2020

    Nothing published for this version

  34. 2.0.0-beta 27 Dec 2019 pre-release

    Nothing published for this version

  35. 1.10.2 18 Apr 2020

    Nothing published for this version

  36. 1.10.1 05 Dec 2019

    Nothing published for this version

  37. 1.10.0 14 Aug 2019

    Nothing published for this version

  38. 1.9.0 30 Jul 2019

    Nothing published for this version

  39. 1.8.3 06 Jun 2019

    Nothing published for this version

  40. 1.8.2 11 May 2019

    Nothing published for this version

  41. 1.8.1 08 May 2019

    Nothing published for this version

  42. 1.8.0 06 May 2019

    Nothing published for this version

  43. 1.7.2 19 Nov 2018

    Nothing published for this version

  44. 1.7.1 28 Oct 2018

    Nothing published for this version

  45. 1.7.0 19 Apr 2018

    Nothing published for this version

  46. 1.6.1 21 Jan 2018

    Nothing published for this version

  47. 1.6.0 27 Dec 2017

    Nothing published for this version

  48. 1.5.0 17 Apr 2017

    Nothing published for this version

  49. 1.4.2 19 Feb 2017

    Nothing published for this version

  50. 1.4.1 12 Feb 2017

    Nothing published for this version

  51. 1.4.0 03 Nov 2016

    Nothing published for this version

  52. 1.3.0 28 Oct 2016

    Nothing published for this version

  53. 1.2.0 25 Jan 2016

    Nothing published for this version

  54. 1.1.0 12 Jan 2016

    Nothing published for this version

  55. 1.0.5 07 Jan 2016

    Nothing published for this version

  56. 1.0.4 03 Jan 2016

    Nothing published for this version

  57. 1.0.3 30 Dec 2015

    Nothing published for this version

  58. 1.0.2 15 Nov 2015

    Nothing published for this version

  59. 1.0.1 31 May 2015

    Nothing published for this version

  60. 1.0.0 07 May 2015

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive