13 Modern PHP Tips & Tricks from 2015

13 Modern PHP Tips & Tricks from 2015

13 Modern PHP Tips & Tricks from 2015 PHP has undergone a massive transformation over the last decade. If you’re still writing PHP like it’s 2015, you’re missing out on massive performance gains, cleaner syntax, and better security. I ran into a nice blog post 13 PHP Tips That Make Development Faster from Linet M. […]

I Have a Dream of a PHP Preprocessor

I Have a Dream of a PHP Preprocessor

I Have a Dream of a PHP Preprocessor What if PHP could be faster, stricter, and more expressive, without waiting for PHP 9? What if we could preprocess PHP code into something more optimized, more elegant, or even a completely new dialect? The name itself hints at the possibility: PHP: Hypertext Preprocessor. But here, we’re […]

Recently updated PIE extensions #5 (since August 27th, 2026)

Recently updated PIE extensions #8

Recently updated PIE extensions #5 (since August 27th, 2026) 27 PHP Pie extensions were updated. iliaal/mdparser (0.6.0): Native C CommonMark + GitHub Flavored Markdown parser for PHP, targeting CommonMark 0.31 + GFM. ~10-20x faster than pure-PHP parsers, zero runtime dependencies. iliaal/php-excel (2.7.0): PHP extension for reading and writing Excel files using LibXL mongodb/mongodb-extension (2.5.0): MongoDB […]

Tree-sitter and PHP: Two Directions, Endless Possibilities

Tree-sitter and PHP: Two Directions, Endless Possibilities

Tree-sitter and PHP: Two Directions, Endless Possibilities Tree-sitter is a very popular library in the computer ecosystem at large. It powers syntax highlighting in Neovim, structural search in VS Code, and a growing wave of static analysis tools, including in PHP environment. What makes it compelling is a combination of properties rarely found together: a […]

Adding the last types to PHP code in 2026

Adding the last types to PHP code

Adding the last types to PHP code 2026 update note: This is an update of the original 2022 article, with annotations added locally to flag what’s changed in the PHP language since: mainly PHP 8.4’s property hooks and asymmetric visibility, which give native answers to several problems the article works around by hand. Adding the […]

setlocale() and Its Six Personalities

setlocale() and Its Six Personalities What does setlocale() actually do? It changes the date format, right? It’s a fair guess, and it’s wrong in an interesting way: setlocale() doesn’t touch one behavior, it touches six, and most of them have nothing to do with dates. Under the hood it’s a thin wrapper around the C […]

The Clock That Cracks Passwords

The Clock That Cracks Passwords

The Clock That Cracks Passwords To understand what is the clock that cracks passwords, let’s start with a quizz. Which security flaw does the following PHP login check contains? If you said “the password should be hashed with bcrypt”, you are right and you may stay. If you said “use === instead”, you are wrong […]

TypePHP, native PHP, NativePHP: the ecosystem has a vocabulary problem

TypePHP, native PHP, NativePHP: the ecosystem has a vocabulary problem

TypePHP, native PHP, NativePHP: the ecosystem has a vocabulary problem PHP names things by accretion. A word gets used for something, then reused for something adjacent, then reused again by a project that picked the name because it was available on Packagist. Nobody arbitrates. Ten years later you have a conference hallway conversation where two […]

Rewritten in PHP

Rewritten in PHP

Rewritten in PHP The application was “rewritten in Rust” meme runs one direction. Or it also goes to Go, just because it is fun. Here’s the traffic going the other way, and why it’s less silly than it sounds. Nobody writes a blog post titled “we ported it to PHP”. The genre convention is the […]