Hai colpito nel segno vorrei proprio creare tutto da zero per una questione molto autodidattica.
Proprio adesso stavo procedendo in questo modo correggimi se hai qualche suggerimento

Creazione di una classe abstract dove imposto i parametri accessi al database ed dei parametri essenziali per il front-end, successivamente ho creato un metodo final protected per la connessione al database e verificandone lo stato. Una classe di StarUp che estende la superclasse dove imposto le proprietà da richiamare in front-end estrapolate dal database già connesso e esegue delle operazione settando le proprietà pubbliche da utilizzare.
Vorrei come prima cosa dividere la fase di connessione al database e dati sensibili per intenderci e poi effettuare le altre operazioni estendendo la superclasse.

Ho fatto un abbozzo di superclasse ma non ho idea se segua una logica chiederei il tuo consiglio.

Codice PHP:
abstract class Config {
    
    
/****PROPRIETA****/
    
const pathbase 'http://localhost/roberto';
    const 
dbname_mast 'roberto';
    const 
servename_mast 'localhost';
    const 
username_mast ='root';
    const 
password_mast='';
    const 
photo_upload_ftp 'rr';    
    protected static 
$offline false;
    protected static 
$connection false;
    
    
    protected static 
$link;
    protected 
$logNotify = array(
                
'database' => 'Attenzione database non trovato o non accessibile',
                
'query_err' => 'Errore durante l esezione della query richiesta',
                
'offline' => 'Sito Attualmente Offline per manutenzione Straordinaria'
                
);
    
    
/****CONNESSIONE DB*******/
    
final protected function connect_db(){
        if(!
self::$connection && !self::$offline){
            
self::$link mysql_connect(self::servename_mast,self::username_mast,self::password_mast);
            if(
self::$link){
                
mysql_select_db(self::dbname_mast,self::$link);            
                
self::$connection true;    
            }else{
                
$this->setOffline(true);
            }    
        }                
                
    }    
    
    
/****IMPOSTA IL SITO IN OFFLINE*****/
    
protected function setOffline($state){
        
self::$offline =  $state;
        if(
self::$offline){
            
header("location: self::pathbase/administrator/bin/offline.php");
        }
    }
    
    
/****GESTIONE ERRORI********/
    
protected function getError($logError){
        return 
$this->logNotify[$logError];
    }
    
    
    
/****CHIUSURA DB********/
    
protected function close() {
        
mysql_close(self::$link);
    }