👋 Hi there
My name is Markus Staab, a open source enthusiast since 2008 ✨.

I am one of the top contributors💫 to PHPStan, Rector, Infection and PHPUnit. It’s likely you read my name in the changelog or release notes somewhere.
Below you can find a list of my personal contribution highlights:
- A
mixedtype PHPStan journey @param-outimplementation in PHPStan- type inference for regular expressions in PHPStan, see also my blog post
@require-extendsand@require-implementsin PHPStan, see also my blog postnon-falsy-stringtype in PHPStan, see also my blog post- PHPStan
sprintf()/sscanf()type inference, see also my blog post - Endless pull requests to improve performance and efficiency in PHPStan and Rector
- Hundreds of bug fixes in PHPStan, Rector, PHPUnit, Composer…
Additionally I am the developer behind cs2pr, phpstan-dba, phpstan-todo-by, rexstan and a few more projects.
For fun and educating myself I contributed to various projects - REDAXO, filp/whoops, sabre/dav, stomp-php, propelorm - to name a few of them.
If one of those open source projects is critical for your business, please consider supporting my work with your sponsoring 💕. I am also available for paid support of PHPStan and related static analysis tooling.
Talks
phpstan-dba - check your sql queries like a boss
May 2023, at PHP Usergroup in Frankfurt Main (Germany).
Top projects
- phpstan-dba: PHPStan based SQL static analysis and type inference for the database access layer
- phpstan-todo-by: Todo comments with expiration
- phpstan-baseline-analysis: Analyzes PHPStan baseline files and creates aggregated error trend-reports
- annotate-pull-request-from-checkstyle: Annotate a GitHub Pull Request based on a Checkstyle XML-report within your GitHub Action
Posts
-
Mutation testing with Infection in PHP
-
PHPStan remembered types from constructor
-
Thank You
-
Contribution Summary 2024
-
My new PHPStan focus: multi-phpversion support
-
A mixed type PHPStan journey
-
PHPStan performance on different hardware
-
Dead code detection for PHP_* constants
-
PHPUnit codesprint Munich
-
Array Shapes For Preg Match Matches
-
Readable end-to-end tests for PHPStan with bashunit
-
Sponsored PHPStan feature: require-extends and require-implements phpDoc
-
Published: Open source contributions statistics generator
-
PHPStan tailored to your needs
-
Published: phpstan-todo-by
-
Contribution Summary 2023
-
PHPStan baseline filter
-
PHPStan result cache gotchas
-
Rector in legacy projects
-
DOCtor-RST speedup
-
How To Debug Slow Rector Projects
-
Racing Rector
-
Rector diff speeding
-
Rexfactor Introduction
-
Make PHPStan aware of your APIs’ implications️
-
PHPStan speedzember
-
2022 Wrap Up
-
Detect slow queries before they hit your production database
-
New PHPStan phpdoc type: non-falsy-string
-
Check your sql queries for errors
-
Placeholder validation in sql queries
-
Type inference for dynamic sql queries
-
rexstan meets phpstan-dba
-
Analyze your PHPStan baseline
-
Monthly report: June 2022
-
GitHub Maintainer Month
-
PHPStan sprintf/sscanf type inference
-
phpstan-dba type inference
-
rexstan - PHPStan REDAXO CMS AddOn
-
phpstan-dba is adopted by popular projects
-
Thanks to my new sponsors
-
Monthly report: May 2022
-
phpstan-dba static analysis
-
cs2pr - GitHub Pull Request annotation
-
Achievement unlocked: 75 PHPStan pull requests merged
subscribe via RSS