Conditional love

April 13, 2020 by Matt Brown

Before Psalm was open-sourced, I had to first get it working on Vimeo’s codebase. One of the early hurdles was picking a return type for the…


It’s time to explain some things

March 23, 2020 by Matt Brown

For some of its users Psalm can seem mysterious – I often see commit messages along the lines of “make Psalm happy”, like it’s some sort of vengeful…


Psalm, now with slightly better type inference

January 7, 2020 by Matt Brown

Prepare yourselves for a mind-blowing piece of news: the latest minor version of Psalm (3.8.x) has slightly better type inference than 3.7.x. If…


PHP or Type Safety: Pick any two

December 5, 2019 by Matt Brown

PHP and type safety aren’t often used in the same sentence. PHP is a very popular language that’s essentially the backend web development equivalent…


Psalm supports PHP 7.4

November 27, 2019 by Matt Brown

Thursday, November 28th 2019 is a big day for PHP: version 7.4 will be released to the world. There are five major new language enhancements coming…


Immutability and beyond: verifying program behaviour with Psalm

September 10, 2019 by Matt Brown

As a language, PHP permits you to do basically anything. There are some built-in runtime constraints (like parameter and return types) that you can…


Psalm 3-and-a-half

August 23, 2019 by Matt Brown

It’s been over six months since version 3.0 of Psalm was released. There have been over a thousand commits to Psalm since then, bringing all sorts of…


Announcing Psalm support for Laravel

March 5, 2019 by Matt Brown

Today I’m releasing a Psalm plugin for Laravel! Background Two months ago I announced the latest version of Psalm, and discussed how its new plugin…


Uncovering PHP bugs with @template

January 30, 2019 by Matt Brown

This guide discusses functionality available in two PHP static analysis tools: Psalm (from Vimeo), and Phan. PHPStan has plans to support templated…


Announcing Psalm v3

January 3, 2019 by Matt Brown

TL;DR: Psalm is a PHP static analysis tool that’s designed to improve large codebases by identifying both obvious and hard-to-spot bugs through the…


Fixing code that ain’t broken

March 16, 2018 by Matt Brown

In June of 2015, the Vimeo Codebase was large, sprawling, and full of magic. It processed many millions of requests every hour. The users were happy,…