se tu crei una classe apposita non c'è bisogno di file header, magari solo per includere la classe. Basta includere le funzioni di uso più comune in una classe database; ad esempio definisci le classi database e user ognuno in un file a parte chiamato rispettivamente database.php e user.php:

Codice PHP:
// database.php
class database {
  public function 
openDB() {
    
$mysqli = new mysqli('localhost' 'user''password''database');
    return 
$mysqli;
  }

  public function 
recordArray($sql) {
    
//restituisce un array di record
  
}

  public function 
findRecord($sql) {
    
//trova un record
  
}

  public function 
closeDB($conn) {
    
$conn->close();
  }
}

class 
User extends database {
  
// user.php
  
public $name;
  public 
$pass;

  public function 
registraUtente($query) {
    
$mysqli $this->openDB();
    if (
$mysqli) {
      
$query "INSERT INTO utenti ('id','user','pass') VALUES ('" $this->name "', '" $this->pass "')"
      
$result =  $mysqli->query($query);
      
$resultSQL $this->recordArray($result);
      
$this->close($mysqli);
      return 
$returnSQL;
     } else
          die(
"Errore nella connessione al database: " $mysqli->error);
   }

  public function 
modificaUtente($query) {

  }

  public function 
cancellaUtente($sql) {

  }
}

require_once(
'include/database.php');
require_once(
'include/user.php');
$user = new user();
$user->name 'Giovanni';
$user->pass 'password';
$user->registraUtente("INSERT INTO utenti ('id','user','pass') VALUES ('" $user->name "', '" $name->pass) . "')"
come vedi nella classe user.php ho usato user extends database per fare in modo che user possa usare tutte le proprietà e i metodi della classe database come se fossero suoi, come se fossero una unica classe. In tal modo hai il vantaggio di avere due clasis completamente distinte ma facilmente modificabili che interagiscono fra di loro!