Toutes dernières heures pour soumettre vos sujets de conférences pour le Forum PHP 2025 : le CFP ferme ce soir, 23h59 ! Partagez avec nous ce qui vous fait vibrer, quitte à ce qu'on affine ensemble une fois que vous serez sélectionné·e.
cfp.afup.org
Toutes dernières heures pour soumettre vos sujets de conférences pour le Forum PHP 2025 : le CFP ferme ce soir, 23h59 ! Partagez avec nous ce qui vous fait vibrer, quitte à ce qu'on affine ensemble une fois que vous serez sélectionné·e.
cfp.afup.org
Proposer ou ne pas proposer un sujet qui retourne le cerveau pour le #ForumPHP
What happens when people don’t understand how AI works
https://www.theatlantic.com/culture/archive/2025/06/artificial-intelligence-illiteracy/683021/
New major release for #php formal/orm:
- ": void" methods have been replaced by ": Attempt<SideEffect>" for monadic error handling
New major release for #php innmind/s3:
- interfaces have been removed
- ": void" methods have been replaced by ": Attempt<SideEffect>" for monadic error handling
New release for #php innmind/immutable:
- add ArrayMerge monoid
- add Attempt::eitherWay()
- allows to chain predicates with and/or methods
New major release for #php innmind/xml:
- most interfaces have been removed
- xml generation (as a file content) is now correctly handled, while still being lazy
@alessandrolai @giorgiosironi I used Eris around 2018 at work. But there was a few things I didn’t like around sets composition. And when I checked if I could contribute it seemed the project was dead at the time.
That’s when I decided to create black-box.
And you’ll see that its api inside phpunit is very similar to eris.
I’m looking for people using #php innmind/black-box at work. Reaching for feedback on how it’s used.
Anyone around here ?
New release for #php innmind/black-box:
- adds Set::enumerate() to generate values without having to rely on internal details
Side effect of all this: I'm finally getting rid of all the mocks in the tests.
Probably one of the biggest mistakes I've made.
Also if you’ve worked with #scala and fs2, this should feel familiar
New major release for #php innmind/encoding:
- Updated dependencies
- Simplified encoding/decoding by only supporting file contents
- new documentation website https://innmind.org/encoding/
New major release for #php innmind/filesystem:
- uses innmind/io 3
- replaces ": void" by ": Attempt<SideEffect>"
So I started rewriting packages to express these behaviours (aka exceptions). Hence the addition of the Attempt monad (https://innmind.org/Immutable/structures/attempt/) and the rewrite of IO (https://innmind.org/io/).
This means that all packages depending on IO will be updated, essentially it's everything interacting with the operating system. You can see the whole dependency graph here: http://innmind.net/vendor/innmind
A little bit of context about my recent releases:
I work on an Actor Model implementation (https://github.com/Innmind/witness/pull/2).
This is one of most complex subjects I've worked on. Each behaviour that is not expressed in the type system makes the implementation more complex and brittle. And the biggest source of unspecified behaviour is IO error handling.
New major release for #php innmind/validation:
- Constraint is now a final class to adding new features
- new non-empty-string, positive-int and negative-int constraints
New major release for #php innmind/io:
It now completely abstracts the handling of streams/sockets behind a declarative API.
It also comes with a documentation website now https://innmind.org/io/
New release for #php innmind/immutable:
- adds Sequence::snap() and Set::snap() to load data at once when needed
- adds Sequence::via() to have a fluent API to configure sequences
- deprecates Set::defer() and Sequence::indexOf()
New major release for #php innmind/black-box:
- Set is now a final class
- adds Set::flatMap() to randomly declare new Sets
- adds PHPUnit 12 support