ciao a tutti...

Ho bisogno di un aiuto concettuale, non vorrei abbandonarmi alla 'mala' programmazione.

argomento : OOP

io vorrei fare un software basato sugli oggetti in maniera da imparare bene (in php) la OOP.

voglio fare una login:

io possiedo una classe chiamata utenti.php al suo interno ci sono i metodi getter e setter di un ipotetico utente (poi sarà ampliata con i dati che dovrà avere l'utente.)
Codice PHP:
class utenti {

    
    protected 
$utente "";
    protected 
$password "";
    protected 
$livello "";
    protected 
$idUtenza "";
    public function 
__construct(){
        
$this->idUtenza $idUtenza;
        
$this->utente $utente ;
        
$this->password $password;
        
$this->livello $livello;
    }

    public function 
setUtente ($utente){
      
$this->utente $utente;
    }

    public function 
getUtente (){
        return 
$this->utente;
    }

    public function 
setPassword ($password){
       
$this->password $password;
    }

    public function 
getPassword (){
        return 
$this->password;
    }

    public function 
setLivello ($livello){
       
$this->livello $livello;
    }

    public function 
getLivello (){
        return 
$this->livello;
    }

    public function 
setIdutenza ($idUtenza){
       
$this->idUtenza $idUtenza;
    }

    public function 
getIdutenza (){
        return 
$this->idUtenza;
    }


ovviamente ho una classe 'main' chiamata sessione.php dove viene richiamato tutto il necessari per effettuare una login
Codice PHP:
session_start();

class 
sessione  {

}

include (
"../../domande/interrogazione.php");
include (
"../../configurazioni/connessione.php");

//carico oggetti
$interrogo = new interrogazione();
$connessione = new Connessione();

//Setto dell'utente nella mia classe 'utenti'
$interrogo->setUtente($_POST['user_name']);
$interrogo->setPassword($_POST['pass']);

$login $interrogo->Login($interrogo->getUtente() , $interrogo->getPassword());


if (
$login){
    
$_SESSION['id'] = $interrogo->getIdutenza();
    
$_SESSION['utente'] = $interrogo->getUtente();
    
header("Location:../../service/index.php?id_user=".$interrogo->getIdutenza());
    exit();
}else{
    
$_SESSION['errorelogin'] = "Riscontrato errore Tentare nuovamente l’accesso";
    
header("Location:../../index.php?pag=accesso");
    exit();
}

//echo $utente->isEsistente();
$connessione->Chiudo_Connessione(); 
successivamente ho una classe dove vengono effettuate tutte le mie Query.. la classe si chiama interrogazioni.php

Codice PHP:
include ("/var/www/DTO/utenti.php");
class 
interrogazione extends utenti {
    
    private static 
$nomehost"nomehost";

    public  function 
Login ($utente $password){
        
        
$database mysql_select_db(self::$nomehost);
        
        
$sql "SELECT * FROM utenti;";
        
$eseguo mysql_query($sql) or die ("ERRORE IN MYSQL_LOGIN  ".mysql_error());
        while (
$row mysql_fetch_assoc($eseguo)){

           
$user $row['user_name'];
           
$pass $row['password'];
           
$livello $row['livello'];
           
$id $row['id_utente'];

           if (
$user === $utente && $pass === $password){
                
$this->setLivello($livello);
                
$this->setIdutenza($id);
                
$trovato true;
                break;
           }else{
               
$tovato false;
           }
        }
        
        return 
$trovato;

    }
//chiudo login 
i miei dubbi e su come ho creato queste pagine:

SESSIONE.PHP

1-devo sempre includere un oggetto all'interno del mio progetto con include("xxx") o ce un metodo integrato nella OOP?
2-se connetto il database nella pagina principale posso evitare di richiamare la classe connessione nel mio oggetto interrogazioni?

INTERROGAZIONI.PHP

1-io per ora mi faccio restituire un array che andrò a scorrerre nella mia classe per estrapolare i dati. Non potrei usare la classe utenti per metttere il risultato al suo interno e poi recuperarli nell'altra classe?
2-restituire un array è cosa giusta e buona oppure è meglio evitare visto le risorse che occupa?

vi sarei molto grato delle risposte o dei consigli che potete darmi... nelle differenti guide non ho trovato molto!

ciao!