@rectorphpi
iAccount based inCzech Republic
About this account
- Account based in
- Czech Republic
- Connected via
- Web
Account-level information from X, not a live location or the device used for a specific post.
Instant Upgrades and Instant Refactorings for PHP Applications. Why do it manually? #rectorphp Created by @votrubaT
PHP Community
Joined December 2018
- Tweets2.7K
- Following3
- Followers4.4K
- Likes3.3K
Pinned Tweet
Simpler, clearer, focused on upgrades and delivery.
New getrector.com/ website is here 🥳🥳🥳
Rector retweeted
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 😱
"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
Rector retweeted
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 :)
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 🎉
Rector retweeted
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.
Rector retweeted
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/…
Rector retweeted
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
Rector retweeted
How is the Reco tool going? I'm adding couple new rules every other day and running across private projects.
79 rules and counting
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
Rector retweeted
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 😉
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
Rector retweeted
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 ↓
Rector retweeted
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
Rector retweeted
The moment Golang tool I don't understand,
found few spots @rectorphp casually missed 🤯
Rector retweeted
After nearly 2 weeks, with improve composer-based set,
now including Doctrine and Twig, new --php option a @rectorphp 2.6.2 is here 🥳
github.com/rectorphp/rector/…
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.
Rector retweeted
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…