Skip to content

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 31, 2025

Bumps cuyz/valinor from 1.14.1 to 1.15.0.

Release notes

Sourced from cuyz/valinor's releases.

1.15.0

Notable changes

Normalizer compilation

A new compilation step for the normalizer has been implemented, which aims to bring huge performance gains when normalizing any value. It works by adding a static analysis pass to the process, which will recursively analyse how the normalizer should perform for every value it can meet. This process results in a native PHP code entry, that can then be cached for further usage.

This compilation cache feature is automatically enabled when adding the cache in the mapper builder. This should be transparent for most users, but as this is a major change in the code (see [Pull Request #500]), some bugs may have slipped through. If you encounter such issues that look related to this change, [please open an issue] and we will try to fix it as soon as possible.

[!NOTE] My goal remains to provide users of this library with the best possible experience. To that end, motivational messages and financial support are greatly appreciated. If you use this library and find it useful, please consider [sponsoring the project on GitHub] 🤗

The development of this feature took nearly two years, mainly due to limited spare time to work on it. I hope you enjoy this feature as much as I enjoyed building it!

On a side note, the next major project will be adding a compiled cache entry feature for mappers, similar to how it was implemented for normalizers. Stay tuned…

[Pull Request #500]: CuyZ/Valinor#500 [please open an issue]: https://github.com/CuyZ/Valinor/issues/new [sponsoring the project on GitHub]: https://github.com/CuyZ/Valinor?sponsor=1

Features

  • Introduce compiled normalizer cache (a4b2a7)

Bug Fixes

  • Accept an object implementing an interface without infer setting (edd488)
  • Handle self-referential types in object constructors (dc7b6a)
  • Properly handle interface with no implementation in union type (f3f98d)
  • Properly match class-string type with no subtype (c8fe90)

Other

  • Add methods to fetch native types (7213eb)
  • Improve integer value type match algorithm (048a48)
  • Update default error message for invalid value for union type (d1ab6a)

1.14.4

Bug Fixes

  • Properly handle superfluous keys when source is an iterable (33ec7e)

1.14.3

Bug Fixes

  • Normalize empty iterable object as empty array in JSON (a22a53)
  • Properly handle full namespaced enum type in docblock (eb8816)
  • Support PHPStan extension for PHPStan v1 and v2 (9f043b)

... (truncated)

Commits
  • c3cb63a release: version 1.15.0
  • dc7b6a8 fix: handle self-referential types in object constructors
  • edd4884 fix: accept an object implementing an interface without infer setting
  • d1ab6a1 misc: update default error message for invalid value for union type
  • f3f98d8 fix: properly handle interface with no implementation in union type
  • 048a481 misc: improve integer value type match algorithm
  • 4b0f260 qa: improve static analysis testing
  • a4b2a75 feat: introduce compiled normalizer cache
  • 7213eb4 misc: add methods to fetch native types
  • 0492047 doc: update credits section
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [cuyz/valinor](https://github.com/CuyZ/Valinor) from 1.14.1 to 1.15.0.
- [Release notes](https://github.com/CuyZ/Valinor/releases)
- [Changelog](https://github.com/CuyZ/Valinor/blob/master/.changelog)
- [Commits](CuyZ/Valinor@1.14.1...1.15.0)

---
updated-dependencies:
- dependency-name: cuyz/valinor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Update/Change dependencies php Pull requests that update Php code labels Mar 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Update/Change dependencies php Pull requests that update Php code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants