⚡
Posts by Romain Canon
Ouiiiiiiiiiiiii 🤩
Félicitations et bravo 🍅❤️
Imaginez 10 ans plus tard je sors une suite à Curvytron et je l’annonce un 1er avril ?
Nan je rigole.
Mais imaginez quand même : curvytron2.com
Grab it while it's hot 🔥
`composer require cuyz/valinor:^2.4.0`
I maintain this OSS project on my spare time — if you want to ensure its future, please consider sponsoring my work 🤗
github.com/sponsors/romm
Code snippet that shows how to use Valinor's case restriction configurators
✨ We also got you covered for when you want to enforce the key case…
⤵️
Code snippet that shows how to use Valinor's case conversion configurators
✨ And the first configurators provided out of the box are the case conversion configurators: automatically convert source keys to `camelCase` or `snake_case` formats!
⤵️
Code snippet that shows how to use Valinor's mapper configurators
Code snippet that shows how to use Valinor's normalizer configurators
🔥 This release also brings support for mapper/normalizer configurators: reusable piece of configuration logic.
This is useful when the same configuration needs to be applied in multiple places across an application, or when configuration logic needs to be distributed as a package.
⤵️
Code snippet that shows how to use HTTP request mapping with Mezzio
The awesome @ocramius.mastodon.social.ap.brid.gy has been working on a native integration with Mezzio!
This means being able to *very easily* map PSR-7 requests to strictly-typed objects!
Look at the example below to see how trivial it becomes.
More info: github.com/mezzio/mezzi...
⤵️
Code snippet that shows how to use HTTP request mapping with Symfony
The Symfony bundle has been updated to support this feature out of the box!
More info: github.com/CuyZ/Valinor...
⤵️
This feature contains several parts:
- Attributes to enforce route/query/body source
- Mapping a whole query/body to single parameter
- Mapping the HTTP request to an object
- PSR-7 support
- And of course, advanced types support and strict error handling with human-readable messages
⤵️
🔥 HTTP request mapping
Valinor now provides a way to map an HTTP request to controller parameters or object properties.
This gives controllers a clean, type-safe signature without coupling to a framework's request object, while benefiting from the library's validation and error handling.
⤵️
🔔 #PHP object-mapper library Valinor v2.4.0 released!
🚀 This huge release brings exciting new features:
- Out of the box HTTP request mapping
- Mapper/normalizer configurators
- CamelCase/snake_case keys conversion
- Keys case restriction
github.com/CuyZ/Valinor...
⤵️ see below for more details ⤵️
PSL 6.0 is out. 🎉
PHP Standard Library is now split into 61 standalone packages. Install only what you need:
$ composer require php-standard-library/async
No more pulling in 60 packages when you just need one.
github.com/php-standard-library/php-standard-library/releases/tag/6.0.0
#php #psl
25 ans à fédérer la communauté PHP en France... Mais ce début d'année 2026 nous inquiète. Vraiment.
Fêter 25 ans ensemble, c'était beau. Mais 2026 s'annonce difficile pour l'AFUP. Sponsors en retrait, billetteries en recul… Sans la communauté, il n'y a pas d'AFUP.
On vous explique nos difficultés dans cet article, et on compte sur vous ! 💙
buff.ly/sh1OMTU
Thanks you @mopolo.dev for helping out!
🚚 The `.io` domain names have become really expensive over the past couple of years, so I’ve decided to move the #PHP Valinor documentation from valinor.cuyz.io to valinor-php.dev
🔔 #PHP object-mapper library Valinor v2.3.2 released!
Mainly a bug-fix release, with 2 notable changes:
- End of PHP 8.1 support (support ended in December 2025)
- Removal of `composer-runtime-api` requirement, making this library completely dependency free. 🎉
github.com/CuyZ/Valinor...
Coucou Lille, on se voit le 22 mai pour parler de tests ? 🤗
Just updated my profile picture, after more than a decade with the old one everywhere on the web! It feels weird but refreshing 😅
And now @packagist.com 🔥
Thank you so much for sponsoring my work and placing trust in my humble contribution to the PHP ecosystem! 🙏
✨ Thank you @pscheit.bsky.social for the generous sponsoring, which allows me to spend more time on Valinor! OSS community is the best! 🚀
github.com/CuyZ/Valinor...
Test output before Symfony 7.4
Test output as of Symfony 7.4
As of #Symfony 7.4, functional tests’ error rendering will finally get you straight to the point with a beautiful, concise output 🥳 Especially useful when doing large refactorings that make dozens of such tests fail while progressing.
Before/After 👇
We've already had really interesting feedback 🔥
I just added a new option E to the poll (explanation is in the thread) — I'd love to have more feedback on how you handle your HTTP requests; Help us making it easy to map a request's values to your controllers!
github.com/CuyZ/Valinor...
🚀 Mapping an HTTP request to a controller using Valinor will soon be a thing!
But before that, I need help and feedback from people — I'd love if you could read and vote on this discussion:
github.com/CuyZ/Valinor...
Thanks a lot! 🙏
(RT for reach? 🥹)
🔔 #PHP object-mapper library Valinor v2.2.1 released!
This version is sponsored by @elias.haeussler.dev who sent a generous donation ❤️
A huge effort was spent to fix a nasty bug, this *could* break your app if you use converters — please read release notes carefully:
github.com/CuyZ/Valinor...
Mérité à peu près à 1000%
People on stage talking about PHP
@dunglas.dev, @nicolasgrekas.bsky.social, @asgrim.dev and Gina Banyard talking about PHP, its future and @thephpf.bsky.social 🐘
Thank you @afup.org for this amazing event!
In four days at #ForumPHP, I’ll explain how to never run out of clean socks.
(and, incidentally, how to handle #Symfony deprecations)
Baptiste Langlade ❌
⬇️
Baptiste Monade ✅