Ciao a tutti,

Ho generato (grazie all'aiuto di molte persone nel foro) un dispatch molto semplice per la gestione degli errori generati dal database
Codice PHP:
        $dispatcher = new event_EventDispatcher(); 

        
$dispatcher->addListener('db.errors',new event_DBErrorsMail(new PHPMailerv51_PHPMailer(),$conf)); 
        
//$dispatcher->addListener('db.errors',new event_DBErrorsLog());

        
$db = new database_DBDispatcherAware($conf); 
        
$db->setDispatcher($dispatcher); 
        
$db->connect();    
        if(
$db->getLastError() !="")
            throw new 
Exception($db->getLastError()); 
Il passo successivo da integrare era descrivere un comportamento a fronte dello stato di errore sql...
Pensavo di aggiungere come ultimo listener un event_DBErrorAction(), dove descrivevo l'azione da compiere per gli stati principali.
Esempio errore di autenticazione riporto al login, sovrascrivendo la proprietà ottenuta dal getLastError() per mostrare a video errori più comprensibili.
Altro esempio per errore insert sql, reindirizzo verso la pagina precedente (o dove è).... ma più che altro per riscrivere i messaggi di errore.

Follia pura oppure c'è qualcosa di sano in questo ragionamento?

Altra cosa... dato che dalla classe a dove ho dato il comando sql non ho più la propagazione, per dell'eccezzione, fuori dalla classe ho pensato di controllare (alla connessione, oppure dopo esecuzione sql ) la variabile e sollevare eccezzione nel caso ci fosse stato errore recuperare GetLastError(e stampare o valorizzare altra var)
E' corretta questa cosa o suggerite di procedere in modo diverso?

Grazie a tutti