You’ve been tweaking PhpStorm for years and using Claude Code straight out of the box. Shortcuts, plugins, themes, live templates... Your editor is tailor-made for you, but the agent that writes a good portion of your code remains untouched.
There wasn’t much to tweak. Skills taught Claude things, and hooks triggered a script when something happened, but the tool was the same for everyone. Until mods arrived.
A mod is a piece of TypeScript that you insert into Claude Code and change how it works: it opens panels, writes to the status bar, adds slash commands, or stops a bash command before Claude executes it. And it reloads on demand, without restarting the session.
Imagine a panel next to you displaying your PHPUnit tests in green or red while Claude works on your code. It’s the biggest thing to come out of the skills, so I’ve recorded a video from start to finish explaining what they are and how to create your own from scratch.
PhpStorm is already set up to your liking. Now it’s your agent’s turn.
PHP
📚 What Really Happens When a PHP Object Is Created?
From class User to new User() — understanding PHP objects without the usual OOP jargon.
📚 PHP, markdown and no dependencies
The more I thought about the technical side of the project, the less interested I became in using a traditional CMS. Romantic-weekend.com is not meant to be a complicated application.
📚 10 PHP Concepts Every WordPress Developer Should Understand in 2026
Modern WordPress development isn’t just about knowing functions.php. These 10 PHP concepts can help you write safer, cleaner, and more maintainable WordPress plugins and themes.
📚 Why PHP is Quietly Becoming the Best Backend Language Again
PHP is making one of the strongest backend comebacks in modern development quietly, efficiently and without hype.
When it comes to email communication, it’s a critical feature for many web applications. From user sign-ups and password resets to notifications and marketing campaigns, emails play a big role in many web apps.
📚 “Duplicate entry ‘0’ for key PRIMARY” usually means your database lost AUTO_INCREMENT
Installing a plugin fails with: Duplicate entry ‘0’ for key ‘PRIMARY’. The obvious reading is that the plugin tried to insert a row with id 0. The actual reading is usually the opposite: the plugin inserted a row without naming the id column, relied on AUTO_INCREMENT to supply one, and got 0 because the column no longer has AUTO_INCREMENT on it.
📚 Integrating a Web Application Firewall with PHP: A Guide Using Slim 3 Framework and Shieldon
In this article, we’ll walk you through how to integrate a Web Application Firewall (WAF) with a PHP-based web application using the Slim 3 framework. By the end, you will understand how to set up a self-hosted WAF to improve your application’s resilience to attacks and manage common security threats.
📚 02 - Persistent Memory Chat in PHP - History That Survives Restarts
Sessions are the easy answer for chat history, but they vanish when the browser closes or the server restarts. For anything that should remember - a support bot, a notes assistant, a shared conversation - you want history to outlive the process.
📚 Continuing to Move PHP Open Source Forward
A year ago, we introduced the first wave of PhpStorm’s open-source sponsorships. We truly believe in the power of open source and the importance of it to the PHP community, and so we want to do our bit, too.
📚 PHP 8.6.0 RC2 available for testing
The PHP team is pleased to announce the first release candidate of PHP 8.6.0, RC2. It is not a typo: a mistake was made while packaging RC1, so RC2 was released instead. For a full explanation, please see this blog post. This continues the PHP 8.6 release cycle, whose rough outline is specified in the PHP Wiki.
📚 PHP 8.3.35, PHP 8.5.11, PHP 8.2.34 & PHP 8.4.26 Released
The PHP development team announces the immediate availability of PHP 8.3.35, PHP 8.5.11, PHP 8.2.34 & PHP 8.4.26. This is a security release.
📚 Kicking Off the Community Events Coalition Special Interest Group
Community events are the lifeblood of the PHP ecosystem. They’re where people come to learn from each other, meet new people, expand their professional networks, build things together, strengthen friendships, sharpen their public speaking skills, and experience the power of belonging to a community. Most importantly, community events are where we build trust with each other.
📚 This Week In PHP Internals | Sept 24, 2026
PHP is getting a new class for a moment in time: precise to the nanosecond, no timezone, leap seconds ignored on purpose — and it can’t tell you what time it is. That’s the Time\Instant and Time\Clock RFC from Tim Düsterhus and Derick Rethans: to get the time, you ask a clock. Plus the regex RFC’s callback question finally settled, Gina P. Banyard’s compiled-regex alternative, a closure-as-entry-point idea that lasted a day, why switching PASSWORD_DEFAULT to Argon2 ran into OpenSSL, and str_mask meeting the same question as array_str_contains.
📚 “missing” memory in a PHP array
I was profiling a data pipeline and noticed something that didn’t make sense: two arrays, same 1 million integer keys (0 to 999,999), same integer values — but one was using 17MB and the other was using 42MB.
Is it TypeScript for PHP? The Reality Behind Swoole’s New Framework. We all know about the PHP language, which is mostly used for website development. It is used in wordpress, drupal, etc. One of the most widely used and old server-side scripting language.
📚 Why This PHP Security Patch Deserves Your Attention Now
On August 27, 2026, the PHP development team shipped 8.5.10 and 8.4.25, a PHP security patch that closes two tracked CVEs alongside a cluster of memory safety bugs in bundled libraries.
Laravel
📚 Laravel Context: The Hidden Information That Follows Your Code
Laravel Context provides a place to store information that belongs to the current execution of your application.
📚 SOLID Principles in PHP and Laravel: First Part (SRP or Single Responsibility Principle)
SRP says a class should have one reason to change. That does not mean one method or one line. It means one job. If a database change, a new JSON format, and a new validation rule all force you to edit the same class, that class has too many responsibilities.
📚 Decide with Jev: Laravel AI That Answers with a Probability
Before I send a tutorial to an editor, I check one thing. Does the draft do what the brief asked for? A brief is the plan for an article. It says what the reader should learn. The draft is what the writer turned in. Sometimes the two don’t match.
📚 Memoize Tagged Cache Reads in Laravel
Laravel’s memoized cache, Cache::memo(), reads a key from your cache store once and serves it from memory for the rest of the request or job. Starting in Laravel 13.33, it also works with cache tags, so you can memoize tagged values with Cache::memo()->tags().
📚 Tagged Memoized Cache and Model Refreshes in Laravel 13.33
The Laravel team released v13.33.0 with tag support for the memoized cache, a Refreshes model attribute that reloads generated columns after a write, and more,
📚 Laravel 13 the most important Feature to care About
Here are the biggest additions in Laravel 13 that make writing modern laravel php code feel better than ever.
Symfony
📚 Preventing Race Conditions in Symfony with Doctrine and PostgreSQL
This article uses seat reservations as an example, but the same approach applies to inventory, balances and guarded status transitions.
📚 Symfony 8.1.8, Symfony 7.4.20 & Symfony 6.4.47 Released
Symfony 8.1.8, Symfony 7.4.20 & Symfony 6.4.47 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project.
📚 You Can’t Delete an Event. So How Do You Honor GDPR Erasure?
How I do a GDPR right-to-erasure request in an append-only, event-sourced Symfony app — with forgettable payloads, and where the pattern stops working.

