Tomas Votruba Profile Banner
Tomas Votruba Profile
Tomas Votruba

@VotrubaT

5,666
Followers
11
Following
1,307
Media
10,854
Statuses

🥳️ Turning legacy PHP projects to joyful code ❤️️ Making @rectorphp to help all PHP devs automate boring work 📖 Wrote a book:

Europe
Joined April 2014
Don't wanna be here? Send us removal request.
@VotrubaT
Tomas Votruba
4 years
I'll pay for 5 people to receive an online course/subscription of their choice (each up to $249) ❤️️ Like this tweet & I will pick 5 winners by Monday 6 PM CET 🚀 Appreciate a RT to spread the word cc @javiereguiluz @Ocramius @matthiasnoback @michellesanver @enunomaduro
17
251
964
@VotrubaT
Tomas Votruba
2 years
Just a friendly reminder: #PHP 8.0 active supports ends in a month 😉 Time to go to PHP 8.1 💪
Tweet media one
20
120
414
@VotrubaT
Tomas Votruba
3 years
PHP 8.1 Enums have just been merged to php-parser 🎉🎉🎉 Now you can start to create Rector and PHPStan rules for them :)
Tweet media one
5
63
350
@VotrubaT
Tomas Votruba
11 months
Do you have a #php project that you want to upgrade fast and safe? You can hire our @rectorphp team to get the dirty work done with carefully prepared battle plan 💪 (last 2 spots for Q1 2024)
7
24
265
@VotrubaT
Tomas Votruba
2 years
After 2 years, the PHPUnit 10 is out today 🥳️🥳️🥳️ Congrats to @s_bergmann !️ With attributes, static data providers, less error notice magic and simpler event system 🙏
Tweet media one
3
43
295
@VotrubaT
Tomas Votruba
11 months
Cool #gpt trick I learned from a friend today: 1) create a private GPT 2) upload your #php project in a zip 3) ask it questions on how to improve it Who knew this goes far beyond the 128k context window 😎 The results are impresive... feels like talking to myself with having
Tweet media one
13
29
248
@VotrubaT
Tomas Votruba
2 years
Thank you for having me @symfonycon 🥳 and everyone coming to my talk 🙏 It felt like a rollercoaster... 😜 Meeting amazing people, sharing wisdom and witty puns 🤩 🤖 Upgrade tools Github demo: 🎞 Slides: Have fun! 😇
3
21
211
@VotrubaT
Tomas Votruba
1 year
Pro tip for #php reconstructions Do you use @symfony ? Check the "removed-ids.php" file... it contains dozens of services you maintain, but never use 😉
Tweet media one
12
25
194
@VotrubaT
Tomas Votruba
3 years
Did you know match can handle dynamic expressions too? :)
Tweet media one
7
29
222
@VotrubaT
Tomas Votruba
1 year
Playing with GPT 4 code interpreter: * upload @phpstan report.json * asking to find the worst file * asking to fix everything it can * uploading file with 85 errors * GPT is giving me the fixed file back... opening now
Tweet media one
3
7
198
@VotrubaT
Tomas Votruba
1 year
Yearly reminder... the #php 8.0 will be dangerous to use in a month. Upgrade in time 😎
Tweet media one
9
12
187
@VotrubaT
Tomas Votruba
4 years
#til Upgrading software is like basic hygiene. Do it daily for 10 minutes and you'll live long and healthy life. Skip it for year or two and you'll find yourself in hospital (in better case).
8
61
190
@VotrubaT
Tomas Votruba
4 years
I get contacted by developers, who struggle with legacy code bases and ask for help. What they don't know, there is a dozen of tools that do my work. I made an Awesome list for PHP migrations, so everyone know about them 👀 PRs welcomed!
Tweet media one
3
57
180
@VotrubaT
Tomas Votruba
2 years
I've added code colors, timing metadata and pricing model over the weekend. Completely new work compared to CLI PHP apps 🙃 One last step is to connect user account with payment, and we're ready for private beta testers. Any volunteers? 😄
Tweet media one
17
12
160
@VotrubaT
Tomas Votruba
4 years
What do I do with open-source donations? I "re-use" them to spread support to those, who need it more than me. 400 € in for me → 450 $ out for 16 people So instead of just one, total 17 people were helped :) thank you for you donations ❤️️
Tweet media one
Tweet media two
2
11
166
@VotrubaT
Tomas Votruba
2 years
I have crazy idea... We're looking for a company, that would fund a test generator to create 50+ % useful test coverage * we teach this tool on your PHP code * the created tool code would remain ours * the tool would be available for your forever Interested? 😎 DM/email
7
22
146
@VotrubaT
Tomas Votruba
10 months
This is pretty cool presentation of brand new framework version ↓
Tweet media one
2
30
150
@VotrubaT
Tomas Votruba
1 year
I want to try new fresh PHP tools no more than 2 years old. What is your latest 2023 discovery in PHP packages/tools world? 🔥
36
14
149
@VotrubaT
Tomas Votruba
2 years
I'm writing post about how I use @laravelphp models... First step: create an open source package with @phpstan rules to keep them strict and clean 😁
Tweet media one
27
9
146
@VotrubaT
Tomas Votruba
3 years
Did you know @symfony offers constant codes for HTTP? Since PHP 8.1 even more useful as enum!
Tweet media one
8
12
145
@VotrubaT
Tomas Votruba
4 years
We often take finished work by other productive people for granted. But we know every contribution requires work, patience and time. This is Superman of PHP ↓ Thank you @nikita_ppv 🙇 for your ongoing work on every version of @php_net and powerful, simple tools🎖❤️️amazing!
Tweet media one
0
29
133
@VotrubaT
Tomas Votruba
4 years
This is huge! 🎉 Congrats @psalmphp and @symfony , thanks to @TobiasNyholm 👍
Tweet media one
0
21
119
@VotrubaT
Tomas Votruba
8 months
The @rectorphp daily downloads sky-rocketed today through 124 000 🥳
Tweet media one
8
8
116
@VotrubaT
Tomas Votruba
4 years
Hello #symfony world! Do you want to migrate YML configs to PHP without effort? Try out migrify/config-transformer Thanks @weaverryan for consulting!
Tweet media one
2
38
111
@VotrubaT
Tomas Votruba
4 years
#til in @phpstorm 2020.1 Jump to other bracket with Control + Shift + M
3
19
103
@VotrubaT
Tomas Votruba
2 years
After 3 weeks of hard work, new Rector is here 🥳️ * +20 % performance improvement in test resource loading ✅ * 50+ bugfixes ✅ * Doctrine unwrapping annotations to attributes ✅ * 6 inlined Symplify packages to ease contributing ✅ * PHPStan 1.8.3 on-board ✅ Enjoy ❤️️
@rectorphp
Rector
2 years
New Release: Rector 0.14.1 #rectorphp
0
4
18
3
20
104
@VotrubaT
Tomas Votruba
8 months
As for next Laravel conference, I think its time to level up a game a bit... 🤞🔥😇 #cfp
Tweet media one
11
8
101
@VotrubaT
Tomas Votruba
9 months
Wow, just found out @symfony docs mentions @rectorphp in the official upgrade guide. Thank you 🙏🙏🙏
Tweet media one
8
6
101
@VotrubaT
Tomas Votruba
8 months
Get the most out of @rectorphp 1.0 🔥🔥🔥 🚀 new Zen Config 🚀 new custom-rule command 🚀 PHP sets automated 🚀 streamline integration to new projects
4
34
117
@VotrubaT
Tomas Votruba
2 years
After years of docblocks, the typed constants are happening in #PHP 8.3... ...can't wait to write @rectorphp rule for these 🙏
1
15
96
@VotrubaT
Tomas Votruba
2 years
I've never run a single Laravel project in my life. Today, I go for a dinner and in the end I have my first @LaravelLivewire app running with forms, queues, tables, events and database. Very impressive for 30 mins 👏☺️ Thank you @ijpatricio for ultimate training 🙏 🎉
9
4
96
@VotrubaT
Tomas Votruba
4 years
So... attributes will be part of #php 8.0 🎉 and #rfc mentions @rectorphp might help migrate docblocks... 🤔 Well @beberlei , challange accepted! 💪
Tweet media one
1
25
93
@VotrubaT
Tomas Votruba
2 years
I asked: "What is the best way to learn Laravel?" He said: "Build a project with it..." Me: "Ok, lets rewrite my last startup 😅" ↓
Tweet media one
12
8
94
@VotrubaT
Tomas Votruba
3 years
Just a reminder... ↓
Tweet media one
4
27
92
@VotrubaT
Tomas Votruba
4 years
Just a reminder...
Tweet media one
2
34
91
@VotrubaT
Tomas Votruba
6 months
Daily reminder, keep your PHP projects updated right in CI: > composer outdated --direct --major-only --strict
3
17
123
@VotrubaT
Tomas Votruba
2 years
New project in a progress... This will be my first online service, so excited 😁
Tweet media one
4
1
88
@VotrubaT
Tomas Votruba
2 years
When @rectorphp started as a little project change single method name, I never imagined it will be used by so many developers, various PHP projects and business across the globe. We're getting close to 10 00 000 downloads 😲 Thank you so much for your support 🙏
Tweet media one
6
5
87
@VotrubaT
Tomas Votruba
3 years
What is better structure for this code since PHP 8.0? :) Winner gets the link to @PHPStan rule that spots these places
Tweet media one
20
10
87
@VotrubaT
Tomas Votruba
4 years
#phpattributes After 5 hours of hacking, we have dummy, yet working prototype for @doctrineproject Entity annotation → attribute Yay! 🎉 #php80
2
18
85
@VotrubaT
Tomas Votruba
3 years
This is awesome to see. @rectorphp just crossed 5000 stars on Github! ⭐️⭐️⭐️ Steady growth and you, a strong community 🐘 so happy to see this!
Tweet media one
4
3
82
@VotrubaT
Tomas Votruba
1 year
Simple pro tip: use nullable returns over false-able to make your code strict and reliable! 👍 @rectorphp , PHPStan, your teammates and your future self will thank you 😉
Tweet media one
9
16
77
@VotrubaT
Tomas Votruba
2 years
Hello @laravelphp internet! I'm new and look for the best practises on following: How do you seperate /app code and /src code?
20
6
78
@VotrubaT
Tomas Votruba
2 years
Friendly reminder: #php 7.4 support ends in 4 months 💀 Do you have few spare hours during summer? Upgrade to PHP 8.0 and you're ready for Christmas challanges 😊
Tweet media one
4
42
72
@VotrubaT
Tomas Votruba
1 year
Feels like it's the right time to let @rectorphp grow up...
Tweet media one
2
6
75
@VotrubaT
Tomas Votruba
2 years
Constructor autowiring of parameter is officially in #symfony ! I wanted this feature for last ~5 years, yay!
Tweet media one
2
7
73
@VotrubaT
Tomas Votruba
2 years
It's about time to deal with these error prone #doctrine cases🤦 in @rectorphp Challenge accepted 💪
Tweet media one
2
4
70
@VotrubaT
Tomas Votruba
4 years
Writing a book was always a dream. A dream I feared and blocked. Not anymore! Thanks to @matthiasnoback and his positive and pro-active aproach, we're writing one togeher. I'm grateful to cooperate with such an open-minded person, who makes me believe in myself more than I do
4
3
72
@VotrubaT
Tomas Votruba
2 years
2 years ago I gave away 5 course those who can't afford it, to learn more about PHP. This week I met 2 in person in Porto ❤️️ It's a sign to repeat😇 * I give 10 people 250 € for course/training Retweet to enter, comment with your course choice. * Till 21st January noon
17
28
68
@VotrubaT
Tomas Votruba
4 years
Last week @rectorphp passed 2 000 000 downloads 🎉🎉🎉
Tweet media one
0
5
71
@VotrubaT
Tomas Votruba
1 year
After punchcard for @laravelphp , maybe we could have something like this for @phpstan 🤔 What do you think? 😇
Tweet media one
11
6
71
@VotrubaT
Tomas Votruba
8 months
I wish I had this handy tool when learning AST first time 🙏
7
6
67
@VotrubaT
Tomas Votruba
2 years
Wow, I never knew there are almost hundreds of fix commits in PHP in just 2 months 😲 Thank you everyone who make PHP running so smoothly and flawlessly 🙏 and to @thephpf group! It's a great ship to be on-board 🤗
0
11
66
@VotrubaT
Tomas Votruba
2 years
I'm excited to share a new book I'm writing 😊 About lazy and smart way to keep your project legacy-free: "Upgrade Every Day" Do you want to read first chapter soon? Let me know:
2
12
66
@VotrubaT
Tomas Votruba
4 years
Oh my, @rectorphp is now trending on Github... ❤️️🥳️ Can we make it pass 4 000 this week? Or today? 😂
Tweet media one
3
6
66
@VotrubaT
Tomas Votruba
2 years
I just got an offer I can't refuse. This is next level #php 😂
Tweet media one
11
5
64
@VotrubaT
Tomas Votruba
3 years
Current status: teaching @phpstan to detect non-existing methods in #twig templates using only static analysis (no temp/var). First prototype after 3 hours of work 🙈
5
5
63
@VotrubaT
Tomas Votruba
2 years
So this is how you smoke-test controller in @laravelphp I'm speechless, this is amazingly simple 😲 (in running on Symfony, we need extra testing magic framework to get same result. Can't wait to switch there)
Tweet media one
6
4
62
@VotrubaT
Tomas Votruba
2 years
Do you measure your type declaration completeness with @phpstan already? You should 😉 It's such a great and safe feeling to see 99 % type-coverage 😎
Tweet media one
5
13
65
@VotrubaT
Tomas Votruba
2 years
I've tried so hard in #nettefw and #symfony to do this, but failed due to tight coupling to the framework. Today, I've accidentaly removed a parent class in @laravelphp controller... And it just works 🤩 (middleware, security, routes... all works!)
Tweet media one
17
3
63
@VotrubaT
Tomas Votruba
3 years
What if @phpstan could help us detect potential enums? 🤔
Tweet media one
5
3
63
@VotrubaT
Tomas Votruba
2 years
@brendt_gd Simply... typed arrays, e.g. function(int[] $ids) { }
2
2
60
@VotrubaT
Tomas Votruba
10 months
@emollick I love the "accidental mic move", it makes is much more trustworthy
1
0
61
@VotrubaT
Tomas Votruba
2 years
Well, this will be fun 😄
Tweet media one
6
1
61
@VotrubaT
Tomas Votruba
2 years
I'm working on a new @rectorphp documentation and it starts to look very nice 😊 How do you like it? 😇
Tweet media one
2
3
60
@VotrubaT
Tomas Votruba
2 years
I'm so happy to see this one! Born thanks to great @symfony components, Rector has just made full circle back into @SymfonyCasts 🥳️
Tweet media one
2
14
60
@VotrubaT
Tomas Votruba
3 years
Open source is fun! 😄 Last week I got a random delivery to an old address I don't use for a while. Something from abroad, they said. What could it only be? Guess what... a gift from @github with my full commit history of 2021 🤗
Tweet media one
Tweet media two
4
0
59
@VotrubaT
Tomas Votruba
2 years
Current status: converting Symfony commands to #laravel on testgenai... Before ↓ After ↓ Wow 😳
Tweet media one
Tweet media two
10
4
58
@VotrubaT
Tomas Votruba
3 years
Testing new @doctrineproject PHP 8.0 attributes on Symfony 5.3... pretty smooth 😉 Jupt upgraded @getrector production website ↓
Tweet media one
3
6
59
@VotrubaT
Tomas Votruba
3 years
This arrived yesterday... my first software award ever 😲 Share your know-how with your peers and build community around you. You'll be rewarded by great friends who work together with deep passion for the joy of it Thanks @github ❤️️
Tweet media one
Tweet media two
8
2
58
@VotrubaT
Tomas Votruba
2 years
The new `composer bump` (B!) is super useful. I've been doing this manually for years, finally I can be lazy 😊 Thank you @Ayeshlive , great job 👏👏👏
5
20
56
@VotrubaT
Tomas Votruba
1 year
What if I told you that next @rectorphp release will be 21 MB smaller? 😎
Tweet media one
2
5
57
@VotrubaT
Tomas Votruba
4 years
In a world where rich companies take more and more, this is an amazing move by @github Thank you for taking whole open-source community to a brand new level for last 5 years ❤️️ I'm very happy to be one of your customers
Tweet media one
1
10
56
@VotrubaT
Tomas Votruba
2 years
The unused public package for @phpstan just got #blade templates support 🤩 * detects unused public constants 👍 * detects unused public methods 👍 * detects unused public properties 👍 Stop maintining dead public code today ⬇️
5
12
58
@VotrubaT
Tomas Votruba
2 years
From an idea to first #laravel open-source package in 3 days 😊 Just deployed to production! Now it's time to improve doc array annotations so PHPStan can validate inputs.
Tweet media one
@brendt_gd
Brent
2 years
A fun idea I had two years ago to replace config arrays with proper config builders that have full static insights in possible config entries and values. What do you think?
9
4
60
4
1
58
@VotrubaT
Tomas Votruba
1 year
I'm rethinking the way I approached @laravelphp performance in past years 🤔 Why? This is ECS test-suite: 1) On the left, Symfony 6 - 0,759 ms 2) On the right, Laravel 10 - 0,179 ms That's 370 % faster 😲 😍
Tweet media one
Tweet media two
9
6
56
@VotrubaT
Tomas Votruba
2 years
...and my first @rectorphp rule for Pest migration ☺️ I love to learn new project that "just makes sense" by trying to understand its logic.
Tweet media one
5
6
56
@VotrubaT
Tomas Votruba
4 years
Life is what happens when you plan something else. 1. Saturday - my laptop decided to die 🤷‍♂️ 2. Monday - @rectorphp crossed 1 000 000 downloads 🙇🎉 3. Tuesday - I got a call about co-writing a *SECRET* book 4. Tuesday - we got keys from 1st @rectorphp office 🥳️🍾 ↓
Tweet media one
2
1
56
@VotrubaT
Tomas Votruba
1 year
After 5 days of work, guess what... @rectorphp rules tests now run in 15 seconds 🔥🔥🔥 Thanks to @laravelphp container and smart cache-reset 💪
7
6
56
@VotrubaT
Tomas Votruba
2 years
Rector now can convert YAML routes in @symfony to controller annotations! Single rule, you just need to providate container. Including route /prefixes 😎 How cool is this? 😲
4
9
55
@VotrubaT
Tomas Votruba
2 years
Just rolled out an exclusive pricing for early adopters ↓ #testgenai
Tweet media one
11
4
53
@VotrubaT
Tomas Votruba
2 years
. @freekmurze showing a very cool way of making new packages 😳🤩 Just run: php configure.php ...and you're good to go 👍
Tweet media one
3
8
52
@VotrubaT
Tomas Votruba
2 years
Wow! Another nice surprise from @laravelphp make command... You can choose the controller type! 😲
Tweet media one
5
4
55