article
Service Layer: dove vive la logica che non appartiene al controller
Pillar article sul Service Layer: come estrarre la business logic dai controller in classi dedicate, testabili e riutilizzabili.
Il problema: controller che fanno troppoUn OrderController ha un metodo store() che: valida l'input, verifica la disponibilita dei prodotti, calcola i...
21/05/2026
article
MVC: il pattern architetturale che tutti usano e pochi capiscono davvero
Pillar article su Model-View-Controller: storia, struttura reale, i malintesi comuni e come Soft PHP MVC lo implementa con consapevolezza.
MVC non e quello che pensiSe chiedi a dieci sviluppatori PHP cos'e MVC, ottieni undici risposte. Per alcuni il Controller e il cervello dell'applicazi...
20/05/2026
article
Interpreter Pattern: dare un linguaggio al tuo dominio
Pillar article sull'Interpreter Pattern: come definire una grammatica per un linguaggio semplice e costruire un interprete che la esegue.
Il problema: logica configurabile che non puo vivere nel codiceUn sistema di sconti ha regole che cambiano ogni settimana: "se il carrello supera 100 ...
17/05/2026
article
Prototype Pattern: clonare invece di costruire
Pillar article sul Prototype Pattern: quando clonare un oggetto esistente e piu efficiente e sicuro che costruirne uno nuovo da zero.
Il problema: costruzione costosa o complessaHai un oggetto ReportTemplate con 30 proprieta: intestazione, font, margini, colori, header, footer, water...
11/05/2026
article
Abstract Factory: famiglie di oggetti coerenti
Pillar article sull'Abstract Factory: come creare famiglie di oggetti correlati senza specificare le classi concrete, con esempi in PHP.
Il problema: oggetti che devono essere coerenti tra loroImmagina un'applicazione che genera documenti in formati diversi: PDF e HTML. Un documento PDF...
10/05/2026
article
Dependency Injection: il pattern che rende tutto il resto possibile
Pillar article sulla Dependency Injection: perche iniettare le dipendenze e il fondamento di testabilita, flessibilita e buon design in PHP.
Il problema: classi che creano le proprie dipendenzeUna classe OrderService ha bisogno di un OrderRepository per accedere ai dati e di un Mailer per i...
09/05/2026