Refactor Legacy PHP to Modern PHP 8 Features
PHP 8.x introduced a wave of expressive features, but migrating legacy code to use them takes pattern recognition across hundreds of files. Claude can handle that systematically.
cat app/Models/Order.php | claude "Refactor this PHP 7 code to use PHP 8.2 features: constructor property promotion, enums for status values, match expressions instead of switch, and named arguments where they improve clarity."
Claude will make targeted, meaningful changes — not just syntactic ones. A status constant becomes a proper enum:
// Before
const STATUS_PENDING = 'pending';
const STATUS_PAID = 'paid';
// After
enum OrderStatus: string {
case Pending = 'pending';
case Paid = 'paid';
}
And constructor boilerplate collapses to a single line:
// Before
public string $name;
public function __construct(string $name) {
$this->name = $name;
}
// After
public function __construct(public readonly string $name) {}
Run it file-by-file and commit each one — modernise-legacy-code-one-file-at-a-time applies here too.
Modern PHP reads better — Claude gets you there without the tedium.
Log in to leave a comment.
The /security-review command scans your uncommitted changes for injection vectors, auth gaps, hardcoded secrets, and other common vulnerabilities.
The SessionStart hook fires when any session begins or resumes, making it ideal for loading environment variables and running one-time setup scripts.
Ask Claude to write property-based tests for your functions using fast-check — it identifies the mathematical invariants in your code and generates tests that cover inputs you'd never enumerate by hand.