Grazie ad entrambi per le risposte
Vedo che entrambi proponete una soluzione 3° classe, ma concettualmente parlando quello che proponete non è più un interfaccia o una classe astratta?
Mi rendo conto di essere sicuramente molto più legato a quello che ho studiato rispetto a voi che avete ovviamente più esperienza.. la butto lì: stiamo parlando di interfaccia/classe astratta ma per praticità bypassiamo la dichiarazione come tale e la creiamo invece come class?

Da quello che dite mi rendo conto di essere stato troppo, decisamente troppo conservativo sulla creazione delle classi. Ho chiaramente estremizzato la semplicità della faccenda, ho altri funzioni che l'utente deve fare e non riguardano solo Games ma anche per esempio Groups o Auctions.. ma con questo nuovo modo di approcciare al problema, creando un controller che "colleghi" le due o più classi interessate penso di poterne venire a capo più facilmente.

Studierò iper volentieri il SOLID, da una lettura della pagina wiki mi sembra un approccio che può aiutare molto a schiarirsi le idee.
Diciamo che per farla breve ho sviluppato delle macro classi ( tra l'altro enormi anche a livello di righe di codice ) senza sviluppare classi "ponte" che collegassero le macro..

Usando dei controller non rischio però di trovarmi con la macro classe che nella pratica non fa quasi nulla?
Mi spiego:

Creo class PM, e definisco gli attributi necessari per esempio $sender, $recipier, $text etc...
Creo poi una class PMController, definendo i metodi send(); update(); delete(); read(); etc..

Che metodi potrei mai inserire all'interno della classe PM se è il controller che me li gestisce?

Al_katraz984 invece se non capisco male tu proponi una soluzione più "action" rispetto al controller, del tipo creare le classi:
class SendPM,
class UpdatePM,
etc etc etc

Ho capito male? O forse anche Santino intendeva la stessa cosa ma il nome della classe mi ha portato fuori strada facendomi pensare a un controller generico anzichè ad uno "dedicato" allo scopo dell'iscrizione dell'utente alla partita?