Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Ondřej Mirtes

@OndrejMirtes@phpc.social
mastodon 4.7.3
  • Open on phpc.social

Creating @phpstan@phpc.social by day and night. 👨🏻‍💻👨‍👩‍👦‍👦🎮🚴‍♂️

698 Followers
72 Following
48 Posts
Joined December 13, 2022
Twitter:
https://twitter.com/OndrejMirtes
GitHub:
https://github.com/ondrejmirtes/
PHPStan:
https://phpstan.org/
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 1w ago
Had an idea today after lunch and basically one-shotted a solution for the currently most-upvoted PHPStan feature request:
3
0
1
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
There's room to improve performance with this technique even more in the future, but we're shipping it now because it brings real benefits already. Currently we've only rewritten 0.8 % lines of code of PHPStan's source code.
7
4
1
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 4mo ago

PHPStan 2.2: Unsealed Array Shapes, Safer Array Keys, and More! https://phpstan.org/blog/phpstan-2-2-unsealed-array-shapes-safer-array-keys

phpstan.org
18
1
20
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

I’m trying to wrap my head around the fact that 10-15 years ago Linux was the OS with the worst UX, now it’s the one with the best UX.

Because it’s made by volunteers who only care about the result and their users, but Microsoft and Apple mostly care only about themselves.

34
23
17
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 4mo ago

Goodbye PHPStan 2.1.x 👋 It's been nice 18 months. https://github.com/phpstan/phpstan/releases/tag/2.1.56

Now onto PHPStan 2.2.0. It's coming on Thursday.

github.com
15
0
6
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Hot take: thanks to LLM coding agents, the average software quality will increase, not decrease.
4
20
1
1
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

Why Array String Keys Are Not Type-Safe in PHP And What Will PHPStan Do About It:

https://phpstan.org/blog/why-array-string-keys-are-not-type-safe

phpstan.org
22
0
20
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@Romm@mastodon.social Coding agents make this feasible.
3
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 7mo ago

For the longest time I was bothered that “Documentation” link on phpstan.org led directly to “Getting Started” page, and that some really useful docs pages weren’t discoverable at all.

That changes today. Documentation now has a dashboard with boxes describing what use-case/problem the linked page solves.

13
0
6
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

Using PHPStan to Extract Data About Your Codebase https://phpstan.org/blog/using-phpstan-to-extract-data-about-your-codebase

phpstan.org
10
3
10
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 7mo ago

Error identifiers documentation is finally useful! Take a while and browse everything PHPStan can report: https://phpstan.org/error-identifiers

phpstan.org
11
0
7
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

New errors are coming to PHPStan:

9
0
8
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

I had a bad hair day at PHP UK but I think this talk recording is still worth your time.

9
0
3
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

RE: @nicwortel@phpc.social

Can’t wait to delete all that object-oriented pesky typesystem code from PHPStan!

phpc.social

Nic Wortel: "The PHP internals team has voted 38–4 to deprecat…" - PHP Community on Mastodon

8
3
2
1
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 5mo ago

I love git bisect and I wanted PHPStan to have its own bisect command. So I made it.

If PHPStan reports a bug in your code but you know it's wrong and that it used to work before you upgraded, you can use bisect to pinpoint the exact commit where the behaviour changed. Available now in 2.1.47!

7
0
9
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 4mo ago

My opinion on the latest Bound-Erased Generic Types RFC: https://externals.io/message/130816#130853 (spoiler alert: I like it)

externals.io
5
0
2
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 7mo ago

Several times a week I tell people their problem can be solved by adding @​phpstan-impure above their non-void function (or by setting rememberPossiblyImpureFunctionValues: false).

Finally, PHPStan will tell them by itself:

9
0
8
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@kanec@techhub.social @marcoarment@mastodon.social Not worse than growing almonds and avocados.
1
2
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

Come see me at 13:30 in Pathé 1 play Red Alert 2…. uhh, talk about generics in PHP. #dpc26 @dpcon@bird.makeup

phpc.social
8
0
1
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

Coming soon to the PHPStan playground 💅

7
0
6
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago
Replying to
@alexkaessner@mas.to In short, on Linux as a user I feel in charge. On other platforms I feel I’m just along for the ride. Specifically: ads, the need to click on “maybe later”, “don’t share my data”, interruptions, updates installed suddenly while restarting the computer, bugs, inconsistent UI. Both Windows and macOS have pretty bad system preferences dialogs. When I installed Bazzite on my gaming PC I was blown away by its preferences (KDE?), everything was discoverable, in an intuitive UI.
6
2
2
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@xela@troet.cafe I really like this take: https://infosec.exchange/@art4/116990536151677007 Preventing people who didn't create their custom software yet (and can now thanks to LLMs) feels like gatekeeping. Me writing PHP projects 20 years ago with all the SQL injections and XSS were worse than today's AI slop.
infosec.exchange
1
3
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@art4@infosec.exchange I agree! I create both types myself already.
1
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago

Something I didn’t have on my bingo card for 2026: a new major version of the only frontend framework I ever learnt and used: Knockout.JS https://tko.io/3to4/

tko.io
3
0
1
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago
Replying to
@Romm@mastodon.social @markusstaab@phpc.social We’re using phpbench since https://github.com/phpstan/phpstan-src/pull/5200 Previously we just relied on noticing that something got slower
github.com
3
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 5mo ago
Replying to
@bobmagicii@phpc.social @beberlei@phpc.social @asgrim@phpc.social I wouldn't say it's tedious, it just reflects the actual complexity of the problem. You have: ReflectionNamedType ReflectionUnionType (can also contain multiple intersections - DNF) ReflectionIntersectionType You can't simplify this to "getClass”. Every type behaves different, you need to write code for each of these cases and decide what you want to do with them. Once PHP adds yet another type, you need to add support to it and decide once again the behaviour.
2
2
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago
Replying to
@joeposaurus Come on, you could write similar lists about most things people do to function in a society. Like driving a car or wearing clothes or drinking coffee.
2
2
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 19mo ago

Yo dawg, I heard you like comments, so I put comments in your comments, so you can comment while you comment.

Now available in phpstan/phpdoc parser 2.1.0 & PHPStan 2.1.6.

15
0
6
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 4mo ago

WebExpo Prague is happening again in two weeks, and I wouldn't miss it. It's one of the best places to meet software people from across the scene in one place.
Use MIRTES26 for 1 000 Kč off at webexpo.net. See you there!

1
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 7mo ago

I’m gonna prompt inject the agents myself 😈

2
0
1
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 5mo ago
Replying to
@beberlei@phpc.social @bobmagicii@phpc.social @asgrim@phpc.social What if the next type is: “Any Exception, except for InvalidArgumentException”? I might be a control freak but to leave the interpretation to me is really important, and not just in PHPStan.
1
3
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago
Replying to
@harald Interfaces too. Trait is not really a declaring class, the class using the trait is. But the information about the trait is also available: https://apiref.phpstan.org/2.1.x/PHPStan.Reflection.Php.PhpMethodReflection.html#_getDeclaringTrait PHPStan knows everything about your code. It needs it for 1st party rules, but you can use it too.
apiref.phpstan.org
1
1
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@acelaya@mastodon.social So is eating meat, avocados, and driving a car, but those cats are out of the bag too.
0
1
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@gullevek@famichiki.jp By this measure we are all idiots ever since we moved on from assembly code to higher level languages (because a lot more people could become programmers).
0
3
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 3mo ago
PHPStan 2.2.4 addresses the RAMpocalypse! It now consumes a lot less memory. See for yourself by running "analyse -v". Running PHPStan itself used to consume 2,8 GB, now it consumes 2,1 GB. On a big real-world project, the consumption went down from 17,45 GB to 14,1 GB.
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago
Replying to
@sabbatical@qoto.org @gerritvanaaken@typo.social @frankrausch@typo.social I installed Bazzite on my gaming PC, apparently the desktop environment is KDE Plasma, so any distro with that.
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@emd@cosocial.ca @acelaya@mastodon.social So you think the same people that review code written by humans, would skip reviewing code written by LLMs? Why?
0
2
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@mnapoli@phpc.social I submitted the form twice (months ago) and no luck yet.
0
1
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 5mo ago
Replying to
@stof @beberlei @bobmagicii @asgrim Another realistic case that might be questionable in the future - what about generics or array contents? Should "Foo" have "Bar" in the "getClasses" array? Again, has to be handled on case-by-case basis.
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@zonuexe@phpc.social I don't get why callable-array, non-empty-mixed, noreturn are marked as "not enforced" by PHPStan. Please open issues about those. AFAIK they work properly.
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@acelaya@mastodon.social You think it won't? Why?
0
6
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@mattbrowndev@mastodon.social Using coding agents is an advantage that makes you a lot more productive. If you won't use it, your competitors will, and you'll lose. Whether you're a business or a job applicant.
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@Romm@mastodon.social Yes, the extension is optional. Fortunately our strong CI suite will catch any discrepancies.
0
2
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Embarking on a vision quest for the next major PHPStan feature.
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 2mo ago
Replying to
@xela@troet.cafe It doesn't matter whether I'm all in or not. The cat is out of the bag and is not going back in.
0
1
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 6mo ago
Replying to
@m1ke Custom dynamic return type extension. Or come up with a design that relies less on arrays like that 😊
0
0
0
0
Open post
Ondřej Mirtes @OndrejMirtes@phpc.social
· 3mo ago
Replying to
@fsfe@mastodon.social @Curia@curia.social-network.europa.eu Congrats, when I will be able to use iPhone Mirroring in the EU? And Siri AI?
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 18:58:30 UTC