Co-Founder at TicketSwap • PHP • Creator of TwigStan

Joined August 2007
436 Photos and videos
Ruud Kamphuis retweeted
Using PHPStan to Extract Data About Your Codebase: In this article, I’m going to show you how to use PHPStan as a data extraction tool — to query your codebase and produce machine-readable output you can use for documentation, visualization, or any other purpose.
2
11
55
5,286
Created a PHP SDK for Absurd: Durable Execution Engine in Postgres. github.com/ruudk/absurd-php-…
I wrote a bit about my sidequest at Earendil: Building Absurd which implements durable execution (𝚞𝚜𝚎 𝚠𝚘𝚛𝚔𝚏𝚕𝚘𝚠, Temporal, Inngest, etc.) on just Postgres. How it works and why I like it. lucumr.pocoo.org/2025/11/3/a…
1
167
Ruud Kamphuis retweeted
19 Aug 2025
No promises we'll be able to fix everything but… We really want to improve generics support in @phpstorm, which issue stands out to you that should definitely be fixed?
11
1
31
5,663
Ruud Kamphuis retweeted
We have released a new version of Castor! 🦫 What's its best feature? `castor execute some-composer/package` Example with latest release of @PHPCSFixer, where we don't even need PHP to run it! 🤯🤯🤯 castor.jolicode.com/getting-…
2
3
17
1,515
Ruud Kamphuis retweeted
#PHPStan 2.1.7 brings very cool new feature: extension point for conditional error ignoring 😍. Using `phpstan.ignoreErrorExtension`-tagged services you can have more atomic approach to handling static analysis errors. Thanks @Ruud_ for this 🍻! phpstan.org/developing-exten…
1
1
9
605
Ruud Kamphuis retweeted
Twigstan (github.com/twigstan/twigstan) is a really promising tool, and is now listed on @phpstorm blog: blog.jetbrains.com/phpstorm/…. Good job @Ruud_ !!! I hope one day it will be the same for my Twig cs fixer github.com/VincentLanglet/Tw… !
1
5
338
28 Nov 2024
Latest version of TwigStan now verifies arguments passed to method calls 😎 {{ user.method(null, true) }} Parameter #1 \$full of method User::getMethod() expects bool, null given. Method User::getMethod() invoked with 2 parameters, 1 required. github.com/twigstan/twigstan… #twig #php
3
203
20 Nov 2024
It's so annoying not being able to implement Stringable on string backed enums in #PHP. Why isn't this implemented automatically. 3v4l.org/flcm9#v8.3.14
1
1
8
782
14 Nov 2024
If you use Rector consider sponsoring Abdul for his great contributions. Can’t wait to use PHPStan 2 when Rector allows it.
I am working on upgrading to PHPStan 2 and PHPParser 5 on @rectorphp github.com/rectorphp/rector-…
3
5
1,072
Ruud Kamphuis retweeted
27 Oct 2024
New plugin for LLM: llm-jq, which lets you pipe in JSON and describe a jq program you want to run and it will use an LLM to generate the jq syntax and run it for you github.com/simonw/llm-jq
27 Oct 2024
Replying to @tqbf
OK, you nerd sniped me: github.com/simonw/llm-jq
8
30
324
36,655
Ruud Kamphuis retweeted
24 Oct 2024
In #composer, you can ignore only upper bound of #php requirements: --ignore-platform-req=php Handy when you want to check that your OS lib is PHP 8.4 ready, but some of its dependencies are not yet tagged with its support:
1
6
293
8 Oct 2024
Replying to @phpstorm
@phpstorm I really like the way PHPStorm shows an easy diff when a PHPUnit assertion fails. You can compare left to right easily. But when working with arrays, this is extremely painful because PS uses var_export, which adds numbers to every Array. This often makes diffing hard.
3
2
230
15 Oct 2024
Thank you!
119
26 Aug 2024
Just open sourced our minimalistic error formatter for PHPStan. github.com/TicketSwap/phpsta…
2
12
49
3,252
Ruud Kamphuis retweeted
Huge release for Twig-Cs-Fixer github.com/VincentLanglet/Tw… Thanks to @Ruud_ for all the NodeVisitor features. Now if you want some (non fixable) static analysis rules, you can implements your own based on Twig\NodeVisitor.
6
12
1,240