When static analysis runs your code
A security vulnerability in PHPCSUtils revealed an eval() call in a static analysis tool. Why disable_functions cannot reach eval(), and what a switch in the PHP engine to disable it could look like.
Read moreArticles about Development Tools by Sebastian Bergmann
A security vulnerability in PHPCSUtils revealed an eval() call in a static analysis tool. Why disable_functions cannot reach eval(), and what a switch in the PHP engine to disable it could look like.
Read more
2025 and 2026 proved to be a stress test for the supply chains of all package ecosystems. A review of Composer and Packagist: what PHP does well, what it can learn — and who owns our infrastructure.
Read more
On every run, PHPUnit knows how long each test took, how much memory it used, and why it failed. Most of that evaporates. otr-report reads it back out of the Open Test Reporting logfile and puts it within reach.
Read more
We protect what exists. But do we ask often enough whether it should exist at all? How removing unused branches can protect against Poisoned Pipeline Execution.
Read more
A walk through the GitHub Actions weaknesses in PHPUnit's workflows, how each one could have been exploited, and what was changed to close them.
Read more
"It feels slow" is not a diagnosis. I explain the three disciplines that turn vague complaints into actionable data: tracing, profiling, and benchmarking.
Read more
Composer 2.9 moved security advisory enforcement from an opt-in third-party package into the resolver itself. This article walks through how the mechanism works, how it relates to the older packages it replaces, and where it can bite you.
Read more
How thoroughly do your tests cover the code, and how reliably do they detect real errors? I show you how to find out.
Read more
Psalm or PHPStan: which tool is the better choice for code analysis? Or is it worth combining both tools for maximum code quality?
Read more
Should PHP_CodeSniffer or PHP-CS-Fixer be used to get code "in shape"? Should both tools even be used together?
Read more
Should you use PCOV or Xdebug to collect code coverage data? I give a personal answer.
Read more
I explain why using overly open version restrictions can lead to problems.
Read moreReceive a comprehensive analysis of new PHPUnit features, implementation details, and the strategic considerations behind each improvement via email every two months.
Subscribe now