{"id":15525083,"url":"https://github.com/staabm/staabm","last_synced_at":"2025-07-04T08:38:21.877Z","repository":{"id":39755445,"uuid":"316603279","full_name":"staabm/staabm","owner":"staabm","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-02T00:13:08.000Z","size":984,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-02T01:24:23.480Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://staabm.github.io/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/staabm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["staabm"]}},"created_at":"2020-11-27T21:28:03.000Z","updated_at":"2025-07-02T00:13:11.000Z","dependencies_parsed_at":"2023-12-21T11:03:29.620Z","dependency_job_id":"a5ba0a43-9257-4efc-b13a-9a35d239a9bd","html_url":"https://github.com/staabm/staabm","commit_stats":{"total_commits":2395,"total_committers":4,"mean_commits":598.75,"dds":"0.014196242171189977","last_synced_commit":"bea44e4f77ba49df7858672d748638df38a793fd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/staabm/staabm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Fstaabm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Fstaabm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Fstaabm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Fstaabm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staabm","download_url":"https://codeload.github.com/staabm/staabm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staabm%2Fstaabm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263478548,"owners_count":23473022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T10:54:32.756Z","updated_at":"2025-07-04T08:38:21.860Z","avatar_url":"https://github.com/staabm.png","language":null,"funding_links":["https://github.com/sponsors/staabm"],"categories":[],"sub_categories":[],"readme":"### Hi there 👋\n\n\n\nMy name is Markus Staab, a open source enthusiast since 2008 ✨.\n\n\u003cimg width=\"200\" alt=\"Markus Staab - open-source lover, creator of staabm/phpstan-dba, staabm/phpstan-todo-by, rexstan and rexfactor.\" style=\"float: right;\" src=\"https://user-images.githubusercontent.com/120441/230766751-c3d8e9ca-0c05-4c2f-b920-ef0e39930e4b.png\"\u003e\n\nI am one of the top contributors💫 to [PHPStan](https://github.com/phpstan/phpstan-src/pulls?q=is%3Amerged+author%3Astaabm), [Rector](https://github.com/rectorphp/rector-src/pulls?q=is%3Apr+sort%3Aupdated-desc+author%3Astaabm+is%3Amerged) and [PHPUnit](https://github.com/sebastianbergmann/phpunit/pulls?q=is%3Apr+sort%3Aupdated-desc+author%3Astaabm+is%3Amerged). It's likely you read my name in the changelog or release notes somewhere.\n\nBelow you can find a list of my personal contribution highlights:\n- [A `mixed` type PHPStan journey](https://staabm.github.io/2024/11/26/phpstan-mixed-types.html)\n- [`@param-out` implementation](https://phpstan.org/blog/phpstan-1-9-0-with-phpdoc-asserts-list-type#parameter-type-assigned-by-reference) in PHPStan\n- [type inference for regular expressions](https://phpstan.org/blog/phpstan-1-12-road-to-phpstan-2-0#general-availability-of-precise-type-inference-for-regular-expressions) in PHPStan, see also [my blog post](https://staabm.github.io/2024/07/05/array-shapes-for-preg-match-matches.html)\n- [`@require-extends` and `@require-implements`](https://phpstan.org/writing-php-code/phpdocs-basics#enforcing-class-inheritance-for-interfaces-and-traits) in PHPStan, see also [my blog post](https://staabm.github.io/2024/01/15/phpstan-require-extends-implements.html)\n- `non-falsey-string` type in PHPStan, see also [my blog post](https://staabm.github.io/2022/08/11/phpstan-non-falsy-string.html)\n- PHPStan `sprintf()`/`sscanf()` type inference, see also [my blog post](https://staabm.github.io/2022/06/23/phpstan-sprintf-sscanf-inference.html)\n- Endless pull requests to improve performance and efficiency in PHPStan and Rector\n- Hundreds of bug fixes in PHPStan, Rector, PHPUnit, Composer… \n\nAdditionally I am the developer behind [cs2pr](https://staabm.github.io/2022/04/03/annotate-pull-request-from-checkstyle.html), [phpstan-dba](https://staabm.github.io/2022/05/01/phpstan-dba.html), [phpstan-todo-by](https://staabm.github.io/2023/12/17/phpstan-todo-by-published.html), [rexstan](https://staabm.github.io/2022/06/18/rexstan-REDAXO-AddOn.html) and a few more projects.\n\nFor fun and educating myself I contributed to various projects - [REDAXO](https://redaxo.org/), [filp/whoops](https://github.com/filp/whoops), [sabre/dav](https://github.com/sabre-io/dav), [stomp-php](https://github.com/stomp-php/stomp-php), [propelorm](https://github.com/propelorm) - to name a few of them.\n\n---\n\n### Recent articles on [staabm.github.io/](https://staabm.github.io/)\n\n- [PHPStan remembered types from constructor](https://staabm.github.io/2025/04/15/phpstan-remember-constructor-types.html) (2 months ago)\n- [Thank You](https://staabm.github.io/2025/01/24/thank-you.html) (5 months ago)\n- [Contribution Summary 2024](https://staabm.github.io/2024/12/11/contribution-summary-2024.html) (6 months ago)\n- [My new PHPStan focus: multi-phpversion support](https://staabm.github.io/2024/11/28/phpstan-php-version-in-scope.html) (7 months ago)\n- [A mixed type PHPStan journey](https://staabm.github.io/2024/11/26/phpstan-mixed-types.html) (7 months ago)\n\n---\n\n#### 💻 Check out what I'm currently working on\n\n- [infection/infection](https://github.com/infection/infection) (1 day ago)\n- [staabm/phpstorm-bug-unreachable-statement](https://github.com/staabm/phpstorm-bug-unreachable-statement) (1 week ago)\n- [infection/site](https://github.com/infection/site) (2 weeks ago)\n- [CuyZ/Valinor](https://github.com/CuyZ/Valinor) (2 weeks ago)\n- [rectorphp/rector-src](https://github.com/rectorphp/rector-src) (2 weeks ago)\n\n---\n\n\nsee [all my recent activities](https://staabm.github.io/recent-work.html)\n\n\n#### 📫 How to reach me\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://phpc.social/@markusstaab\" target=\"blank\"\u003e\u003cimg align=\"center\" src=\"https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/mastodon.svg\" alt=\"@markusstaab at mastodon\" height=\"30\" width=\"30\" /\u003e\u003c/a\u003e\u0026nbsp;\n  \u003ca href=\"https://twitter.com/@markusstaab\" target=\"blank\"\u003e\u003cimg align=\"center\" src=\"https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/twitter.svg\" alt=\"@markusstaab at twitter\" height=\"30\" width=\"30\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaabm%2Fstaabm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaabm%2Fstaabm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaabm%2Fstaabm/lists"}