October 21st 2025
Learn how the NamespaceVisibility attribute emulates the missing package visibility modifier. [Read]
October 5th 2025
Learn how the MustUseResult attribute can prevent coding mistakes. [Read]
September 27th 2025
Learn how the Friend attribute can be used to enforce the usage of creational design patterns. [Read]
September 14th 2025
It's possible to use static analysis to emulate new language features in PHP. This article examines how, and introduces the PHP Language Extension Library. [Read]
June 23rd 2023
This is the first part of a 4 part series of articles about adding PHPStan to existing projects. First we'll deal with team members who might object. [Read]
March 18th 2021
Static Analysis Results Baseliner (SARB) is used to create a baseline of these results. As work on the project progresses SARB can takes the latest static analysis results, removes those issues in the baseline and report the issues raised since the baseline. Learn all about version 1. [Read]
December 14th 2020
Generics in PHP is already a reality with static analysis. The leading static analysers have largely converged on an unofficial standard. This article proposes the first steps towards a standard. [Read]
June 5th 2019
Many PHP developers would love generics. We might have to wait a while until they come along. This article shows how existing tools can give us the power of generics now (almost). [Read]
April 1st 2023
The code that executes PHP is currently written in C. Converting this to Rust offers many advantages. This article talks about work in progress to convert the C code to Rust, using Chat GPT. [Read]