Replying to @CleanShot
@CleanShot are you aware that screenshots posted in Slack no longer preview like they did before? Super annoying. When you click them, it opens your website, and that shrinks the image. So you have to tap again. Frustrating experience if you open a lot of them daily.
I'm looking for a blazing fast @phpstorm alternative that allows me to just view and navigate a codebase. I don't want nor need to modify anything. Maybe I want to add comments for my agent here and there. But all the rest can be skipped. Hopefully 1 day @jetbrains will make it.
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.
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…
Ruud Kamphuis retweeted
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?
Can You Write A Web Server in PURE BASH?! (no socat, no netcat, no exter... youtu.be/L967hYylZuc?si=q_E7… via @YouTube
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-…
Ruud Kamphuis retweeted
FrankenPHP has been moved to the PHP org!
@ThePHPF 💜💪
github.com/php/frankenphp
Ruud Kamphuis retweeted
My talk about #PHP Dead Code Detector is out:
🇺🇸 slides: docs.google.com/presentation…
🇨🇿 talk: youtu.be/3KHixfhUlAY
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…
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… !
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
I just tagged the first release of TwigStan, a static analyzer for #Twig templates powered by @phpstan.
github.com/twigstan/twigstan
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
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-…
Ruud Kamphuis retweeted
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
Replying to @tqbf
OK, you nerd sniped me: github.com/simonw/llm-jq
![Installing collected packages: llm-jq
Successfully installed llm-jq-0.1a0
$ curl -s https://api.github.com/repos/simonw/datasette/issues | \
llm jq 'count by user.login, top 3'
[
{
"key": "simonw",
"value": 11
},
{
"key": "king7532",
"value": 5
},
{
"key": "nicfab",
"value": 2
}
]
group_by(.user.login) | map({key: .[0].user.login, value: length}) | sort_by(.value) | reverse | .[0:3]](https://pbs.twimg.com/media/Ga3e7ZMbsAAeq6G.jpg?name=small&format=webp)
ALT Installing collected packages: llm-jq Successfully installed llm-jq-0.1a0 $ curl -s https://api.github.com/repos/simonw/datasette/issues | \ llm jq 'count by user.login, top 3' [ { "key": "simonw", "value": 11 }, { "key": "king7532", "value": 5 }, { "key": "nicfab", "value": 2 } ] group_by(.user.login) | map({key: .[0].user.login, value: length}) | sort_by(.value) | reverse | .[0:3]
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.
Ruud Kamphuis retweeted
PHP Annotated – September 2024
blog.jetbrains.com/phpstorm/…
















