@rectorphp

Instant Upgrades and Instant Refactorings for PHP Applications. Why do it manually? #rectorphp Created by @votrubaT

PHP Community
Joined December 2018
Simpler, clearer, focused on upgrades and delivery. New getrector.com/ website is here 🥳🥳🥳
1
3
30
1,003
It seems Rust is handling big projects really really well, mid-size even better ECS in PHP: 50 s ECS in Go: 4 s ECS in Rust: 0.8 s 😱
9
6
155
24,865
"Should we rewrite or upgrade?" That question costs teams years when it's answered by guessing. We've reviewed hundreds of PHP codebases. We'll tell you which one your app actually needs - and in what order - in 2 weeks. getrector.com/codebase-audit
2
2
430
Why use Go/Rust tooling for PHP projects? Apart speed, my favorite reason is freedom: * It runs on any PHP 5-9 and will forever, no conflicts * It runs on any set of dependencies, legacy, modern, latest framework, Zend 1, Symfony 1, Laravel 4... you name it - no conflicts, never! Go compiles to own binar and does not need exact set of this or that PHP dependency. Anyone can install it, anywhere :)
8
10
1
91
10,005
We're cooking something...
1
1
13
802
Sometimes you don't want to run all the rules, but not just 1 either. Sometimes you want to run 3-5 rules that handle some logical group, like return type declarations. In the next Rector release, you can We added support to run multiple rules via --only 🎉
1
375
surprisignly, daily job of master upgrader is not to upgrade a code. It's to increase confidence in the codebase, that is nearly zero at the start. By building safety net with tests, static analysis, automated tooling, but also by teaching dev team in the team to make use of these tools. Work less, be more lazy and remember less. This is the kaizen approach that yield best codebase shape. They're more fun to work with and maintain in time.
1
2
10
1,212
New @rectorphp 2.6.5 comes with smarter cache, as it should be intuitively 🤗 * configured rule value changes now invalidate the cache ✅ * --only <Rule> reuses the full-run cache ✅ * changing skips and removing rules does not wipe out cache ✅ github.com/rectorphp/rector/…
6
22
1,663
Automation is trending, agents are catching up. A year ago, @rectorphp had a little downturn during summer, averagin ~100 k downlaod a day. This year it's different. Growing instead and reaching 240 k 🥳🥳🥳 Continue finetuning Rector for flawless one-shot run
1
1
9
633
How is the Reco tool going? I'm adding couple new rules every other day and running across private projects. 79 rules and counting
1
5
669
Rector retweeted
2026 will be the last year we'll use Rector/PHPStan tooling as part of our private upgrade service. Golang tooling is so much faster, tolerant to legacy codebases and more precise 🎉 If you're still on an old PHP, let us know. We'll help you grow 🚀 getrector.com/hire-team
4
3
32
5,622
Same here. Before vibe coding I was willing to slip such a mess, only because I didn't have time and attention to improve all the code to the best shape possible. The mess I created only to close the PR. Feeling ashamed just to deliver, knowing it would require me to spend 3 more hours to explore all the edge cases and fix them. Now I've raised the bar as high as I can imagine (2-3 times higher than 2025) 🎉 I'm the same coder as before, but now I'm much better product designer 😉
Main thing I've learned from the vibecoding era is that a lot of people have extremely low standards for what they consider acceptable software quality.
1
9
1,672
2026 will be the last year we'll use Rector/PHPStan tooling as part of our private upgrade service. Golang tooling is so much faster, tolerant to legacy codebases and more precise 🎉 If you're still on an old PHP, let us know. We'll help you grow 🚀 getrector.com/hire-team
4
3
32
5,622
On purpose, I'm avoiding to make a "Go-port-of" @rectorphp Instead I'm building a brand new tool from the ground up. Why? * maybe current Rector features are legacy needs from 2018 that are no longer valid * maybe 2026 has different pain points to solve (hope so :)) * use what you really need right now, not what "typical X tool does" * today's customer is not just a developer, but also an agent (soon to be inversed) = that's huge mindshift Saying that, today I needed to group rules together, because there is too many. Seing one huge commit might be scary (harder to debug, understand quickly), but if all is PHP or types or dead-code, it's easier to grasp. Hence - sets :) this is how it looks in Golang ↓
2
2
26
1,741
I always wanted one feature to @rectorphp, but it would take ~15+ mins on most projects. It would save sooo much time with "git commit" and files picking. What is the feature? Run 1 rule separately. If it changes anything? Commit. Goto next rule. Run all rules this way
2
9
635
The moment Golang tool I don't understand, found few spots @rectorphp casually missed 🤯
1
1
3
726
Funny statistics... everyone goes for vacation over summer and projects tend to hybernate a bit. Yet we got the most request for upgrade service in July + August than for Q1+Q2 combined. Maybe summer holidays is the best time to start something we postponed for a while and now, With more clarity, the priority is obvious.
4
485
We've recently jumped one project to PHP 8.4 and it opened a upgrade path for dev packages... ...do you also use PHPUnit? Time to bump to PHPUnit 12 Get ready for a loooooooooot of changes ⬇️ getrector.com/blog/upgrade-t…
1
3
12
1,584