All projects require some monkey work, #PHP interpreter is no exception.
Parsing functions params is done with ZPP or fast ZPP, many being converted to the latter.
Does it mean many native functions will be slightly faster? Yes!
Should I do a thread about how params are parsed by PHP?
10.03.2026 08:09
👍 1
🔁 1
💬 1
📌 0
#Vim satisfaction when you want to split a list of argument from inline to multiline: `f,` to find the first comma `a<Enter>` to move the argument to the newline.
And then you just repeatedly type `;` then `.` 💙
09.03.2026 07:41
👍 0
🔁 0
💬 0
📌 0
Escaping the Code Maze, Wed, Mar 11, 2026, 6:30 PM | Meetup
We return in March and we have Yannick giving his talk "Escaping the Code Maze".
**Escaping the Code Maze**
Yannick Chenot
Exploring a code base is like navigating a maze
📢 Bristol! I'm speaking at PHPSW this Wednesday (11 March).
I’ll be giving an extended version of my talk Escaping the Code Maze, introducing the Closed-by-Default Principle.
Are you based in Bristol or in the area? Come say hi!
09.03.2026 07:08
👍 4
🔁 3
💬 0
📌 0
SplFixedArray uses ~60% less RAM than a regular array in #PHP.
That's because regular ones are always (re)allocated with a power-of-2 capacity. 1025 elements? 2048 allocated!
Fixed size. Integer keys only. No hash table overhead.
Since 5.3. I almost never see it used, do you?
07.03.2026 08:16
👍 3
🔁 2
💬 1
📌 0
Behind the Scenes: 3 Collaborative Ceremonies for Better Development
Boost team collaboration with Event Storming, Example Mapping, and Domain Storytelling. Learn how these modeling ceremonies clarify requirements and align tech teams
📰 #FridayTechReads
New article by Imen Ezzine on our blog 🤩
Learn about 3 collaborative ceremonies: Event Storming, Example Mapping & Domain Storytelling
Imen explains how these ceremonies impacted her journey to becoming a better #PHP developer 🚀
🔗 tinyurl.com/59wck48m
06.03.2026 11:58
👍 1
🔁 2
💬 0
📌 0
🤘
05.03.2026 14:49
👍 0
🔁 0
💬 0
📌 0
Le Cafe - Oldelaf | FUTURE
YouTube video by LOST
Obligatory clip "Le Cafe" www.youtube.com/watch?v=UGtK...
05.03.2026 14:36
👍 1
🔁 0
💬 1
📌 0
The hype is real!!!!!
04.03.2026 10:22
👍 1
🔁 0
💬 0
📌 0
With 2 apps needing the same code, I pulled an old trick: monorepo.
Extracted shared code into packages, keep them in one repo. No Packagist, no propagating changes across repos (a pain I know all too well).
No extra tooling: Composer handles it out of the box
gnugat.github.io/2026/03/04/x...
04.03.2026 07:34
👍 1
🔁 0
💬 1
📌 0
This unlocks new possibilities, your input models can now hold logic. For example, you can add a method in your input class and mark it with `#[Interact]` to ask for required args.
Yes! you can finally use `$this` instead of `$input->getArgument()` and `$input->setArgument()`.
#Symfony #PHP #DX
09.11.2025 14:36
👍 7
🔁 2
💬 0
📌 0
Micro-optimization in #PHP 8.5: fast-path for implode() when the separator is a single character.
It’s a tiny change in ext/standard, but given how hot this path is in real-world apps, it’s far from negligible.
Always fun to optimize hot-paths right inside the engine.
github.com/php/php-src/...
03.03.2026 10:24
👍 6
🔁 1
💬 1
📌 0
#Symfony Terminal component to be announced by @fabien.potencier.org at the keynote???
OMG can't wait to build PHP TUIs!!!!
27.02.2026 12:10
👍 1
🔁 0
💬 1
📌 1
I've added the Making App link at the bottom of my article. Thanks again for pointing it out!
26.02.2026 09:08
👍 2
🔁 0
💬 1
📌 0
It really sounds very similar!
Where it diverges, if I understood correctly:
- Making App is the UI for devs, devs don't interact anymore with the actual app
- Making App isn't used by product / QA
Thanks for sharing, this is very interesting (too bad the Making App picture is gone!)
25.02.2026 16:52
👍 0
🔁 0
💬 0
📌 0
Excellent find, thank you for sharing!
I'll see if it can replace my git-fetch script (github.com/gnugat/dotfi...)
23.02.2026 13:31
👍 1
🔁 0
💬 0
📌 0
Cleaning up merged git branches: a one-liner from the CIA's leaked dev docs | spencer.wtf
How to delete all merged git branches locally with a single command. This one-liner has been in my zshrc since 2017 — I found it buried in the CIA's Vault7 l...
Un one-liner Git pour nettoyer toutes les branches mergées localement, trouvé dans les docs de dev internes de la CIA leakées en 2017. Pratique pour éviter d'avoir 40 branches qui traînent. @spencerldixon.bsky.social
23.02.2026 12:20
👍 6
🔁 3
💬 2
📌 0
I like typed constants. They make the code more consistent (typed properties, etc), and they explicitly declare the types for readers. But yeah, it's syntactic sugar
21.02.2026 08:20
👍 1
🔁 0
💬 0
📌 0
I'e used exclusively Opus 4.6 since the 9th until today (the 18th), and just finished burning all that £38 extra credit.
Good timing, now I'll use exclusively Sonnet 4.6 for the next 9 days to compare, I guess 😅
18.02.2026 13:16
👍 0
🔁 0
💬 0
📌 0
Claude Code followed with: I have everything I need. The plan is elegantly simple — so cunning that a fox who'd been appointed Professor of Cunning at Oxford University would be in awe. Let me write it
up.
Brilliant
13.02.2026 07:42
👍 0
🔁 0
💬 0
📌 0
Claude Code answered: A plan so cunning you could put a tail on it and call it a weasel. Let me explore the codebase thoroughly first.
Claude knows its classics
13.02.2026 07:41
👍 0
🔁 0
💬 1
📌 0
The Claude Code prompt says: Let's plan the greatest cunning plan to have ever been cunningly planned, Baldrick
Prompt engineering, 2026 version
13.02.2026 07:40
👍 0
🔁 0
💬 1
📌 0
Fun fact:
1. index.php first require_once ../vendor/autoload_runtime.php
2. autoload_runtime.php then require ../public/index.php 😅
3. index.php returns the Kernel closure
4. autoload_runtime.php gives the closure to the Runtime
🤯
11.02.2026 11:02
👍 0
🔁 0
💬 0
📌 0
With the help of packages, e.g. runtime/frankenphp-symfony for FrankenPHP, when those environments are detected, then a loop is created to handle requests in a long running process (app server).
This means there's no need to modify public/index.php
11.02.2026 11:00
👍 0
🔁 0
💬 1
📌 0
SymfonyRuntime will detect the environment.
If PHP-FPM / CLI is detected, it'll create the Request from the PHP super globals, pass it to the Kernel and get the Response. Exactly like the old public/index.php
11.02.2026 10:58
👍 0
🔁 0
💬 1
📌 0
Before: public/index.php instanciates the Kernel, then creates the Request from PHP super globals, the passes the request to the kernel and gets a response, then we "send" (print) the response and finally we handle post processing events (kernel terminate).
After: public/index.php requires_once vendor/autoload_runtime.php, which then requires (back!) public/index.php, which this time returns a closure which instantiates the Kernel.
Back to autoload_runtime.php, it instantiates a SymfonyRuntime, and then executes it with the Kernel closure.
The #Symfony Runtime.
Before: index/public.php instantiates the Kernel, create the Request, pass it to the Kernel and get the Response.
After: create a closure that instantiates the Kernel, and the Symfony Runtime will take care to create Requests, pass them the to Kernel and get the Response.
11.02.2026 10:56
👍 1
🔁 0
💬 1
📌 0