article
State Pattern: oggetti che cambiano comportamento in base al proprio stato
Pillar article sullo State Pattern: eliminare i blocchi switch/if sullo stato trasformando ogni stato in una classe con il proprio comportamento.
Il problema: lo switch sullo stato che divora il codiceUn ordine in un e-commerce ha diversi stati: draft, pending, paid, shipped, delivered, cancelle...
05/05/2026
article
Command Pattern: trasformare le azioni in oggetti
Pillar article sul Command Pattern: encapsulare richieste come oggetti per parametrizzare, accodare, loggare e annullare le operazioni.
Il problema: azioni che vivono solo nel momentoUn controller riceve una richiesta POST e chiama direttamente $order->cancel(). Funziona. Ma cosa succe...
04/05/2026
article
Proxy Pattern: controllare l'accesso senza cambiare l'interfaccia
Pillar article sul Proxy Pattern: lazy loading, access control e caching trasparente tramite oggetti surrogato che rispettano la stessa interfaccia.
Il problema: oggetti pesanti che non servono subitoHai un modello Article con una relazione comments(). La pagina del blog elenca 20 articoli con tito...
03/05/2026
article
Repository Pattern: separare il dominio dalla persistenza
Pillar article sul Repository Pattern: come creare un layer di accesso dati che isola la business logic dai dettagli del database.
Il problema: query SQL sparse ovunqueIn un progetto PHP che cresce, le query al database tendono a disperdersi: nel controller, nel service, a volte p...
02/05/2026
article
Decorator Pattern: aggiungere comportamento senza toccare il codice esistente
Pillar article sul Decorator Pattern: come wrappare oggetti per estenderne le funzionalita senza modificare le classi originali, con esempi pratici in PHP.
Il problema: estendere senza ereditareImmagina di avere un servizio che invia notifiche via email. Funziona perfettamente. Poi arriva la richiesta: "v...
01/05/2026
article
Quick note: Middleware come Chain of Responsibility
Quick note sul Chain of Responsibility Pattern nello stack middleware: CSRF, rate limiting, autenticazione e la pipeline come catena di decisioni.
Ogni anello decide se passare al successivoLo stack middleware di Soft PHP MVC e una Chain of Responsibility: ogni middleware riceve la request, decid...
30/04/2026