Most codebases don't start messy — they evolve that way. Business logic bleeds into controllers, framework code wraps around your domain, and one day you realize: you're not driving the application anymore. The framework is. In this full-day hands-on workshop, we'll refactor a real-world PHP application step by step — moving from a tightly coupled codebase toward Clean Architecture, using Hexagonal Architecture principles along the way. We won't work with a "todo app." We'll use **Conduit** — the RealWorld Example App — a Medium-like blogging platform with real complexity: use cases with varying flows, and enough coupling to make the refactoring meaningful. **What we'll cover:** - A short theory foundation: Clean Architecture, ports & adapters, primary vs secondary actors — the *why*, not just the *what* - A group whiteboard exercise to map your own application's boundaries (primary vs secondary actors — this one clicks for people) - Live coding: extracting use cases, ports/adapters, domain layer, and read models - Real trade-offs: what to extract, when, and what it costs - Strangler Fig applied at the codebase level: how to make progress without stopping the world **By the end of the day, you'll know how to:** - Decouple business logic from your framework and infrastructure - Refactor incrementally — no big-bang rewrites - Apply Clean Architecture patterns with confidence, not cargo-culting - Argue the trade-offs clearly with your team The workshop has been delivered at **SymfonyCon Amsterdam 2025** (4.67/5 participant rating), **SymfonyOnline 2026**, **SymfonyLive Berlin 2026**, and as an in-house session at Masterlease Poland. Each edition improved the format — Berlin introduced a two-perspective whiteboard exercise and more structured coding-together time that participants responded especially well. **Audience:** Mid/Senior PHP developers who work with legacy or growing codebases **Prerequisites:** Comfort with PHP OOP; no prior Clean Architecture knowledge required **Stack:** PHP + Laravel (hands-on exercises)

Comments

Comments are closed.