Originariamente inviato da ombra
oook

più che altro volevo sapere se la gestione degli errori fosse corretta..
Mah...imho puoi fare una classe generica per gestire gli errori.
A questa classe passi, se vuoi, il tipo di errore e magari gli fai costruire un minimo di grafica e un debug back trace, così sai dove si verifica il problema.
Infatti...se c'è un errore attualmente sai solo che c'è...ma quando userai le classi in un progetto "corposo" con magari delle classi che fanno query in vari metoi, non avrai idea di dove è l' errore (in che metodo? Di che classe? In che riga?)

Esempietto di funzione di debug
Codice PHP:
function getDebugBacktrace($NL "
"
) {
        if (
$this->vars["debug_compatibility"] == 0) {
            
$dbgTrace debug_backtrace();
            
$dbgMsg .= $NL."<h3>[b]Debug backtrace begin:[/b]</h3><div class=\"error1\">";
            foreach(
$dbgTrace as $dbgIndex => $dbgInfo) {
                
$vars "";
                foreach (
$dbgInfo["args"] as $index => $argomento) {
                    if (
is_object($argomento)) {
                        
$vars "Object of: " get_class($argomento);
                    } else {
                        if (
is_array($argomento) and sizeof($argomento) > 0) {
                            foreach (
$argomento as $chiave => $valore) {
                                if (
is_object($valore)) {
                                    
$vars "Object of: " get_class($valore);
                                } else {
                                    
$vars .= "<blockquote>";
                                    
$vars .= $this->varDump($valore);
                                    
$vars .= "</blockquote>";
                                    
$vars $this->my_nl2br($vars);
                                }
                            }
                        } elseif (
is_object($argomento)) {
                            
$vars "Object of: " get_class($argomento);
                        } else {
                            
$vars $argomento;
                        }
                    }
                }
                
$dbgMsg .= "\t at {$dbgIndex}  [i] {$dbgInfo['file']} [/i] (line {$dbgInfo['line']}) -> <u>{$dbgInfo['function']}</u>( {$vars} ){$NL}";
            }
            
$dbgMsg .= "</div><h3>[b]Debug backtrace end[/b]</h3>{$NL}";
            return 
$dbgMsg;
        } else {
            return 
"";
        }
    } 
Inoltre...conviene che crei una classe "generica" che inizializza un po' di cose (es. le connessioni al db, varie variabili che userai in giro per il software, i cookie ecc). Questa classe la instanzi all'inizio di ogni chiamata e la assegni per referenza in ogni classe che crei ($news = new news($super_classe), dove news ha il suo costruttore del tipo
Codice PHP:
class news{

    private 
$super_classe,
    
$altra_variabile_privata;
    public 
$notizia,
    
$id_notizia;

    function 
news(&$super_classe) {
        
$this->super_classe $super_classe;
    }


Quando quindi dovrai fare operazioni sui db, per esempio, userai $this->super_classe->db->sql_lib->exec_cache_query("utente_from_id", 5), se dovrai recuperare un cookie $this->super_classe->cookie->get_cookie_value("login_name"), se devi recuperare il percorso delle immagini per la grafica $this->super_classe->var["img_path"] ecc