Ciao a tutti, dovrei interfacciare un database MySQL che contiene un'elenco di film con la rispettiva classe 'Film' in PHP.

Volevo chiedervi se è giusto usare questo modo di programmazione, che certo, funziona, ma non sono sicuro sia il metodo più corretto per vari motivi:

1 - Esegue una query ogni volta che viene istanziato un oggetto. Se dovessi istanziare 100 oggetti in uno script come faccio a non farlo risultare toppo pesante?

2 - Il costruttore non può returnare un valore, è forse meglio utilizzare un metodo statico al posto del costruttore?

3 - E' giusto utilizzare le get e le set in questo modo? Oppure è meglio usare le funzioni magiche?

Codice PHP:
class Film {
 
        private 
$id;
        private 
$titolo;

        function 
__construct($id) {
                
$result mysql_query("SELECT * FROM films WHERE id=".$id);
                
$row mysql_fetch_array($result);
                
$this->id $row['id'];
                
$this->titolo $row['titolo'];
        }

        public function 
getId() {
                return 
$this->id;
        }
        public function 
getTitolo() {
                return 
$this->titolo;
        }
        public function 
setId($id) {
                
$this->id $id;
        }
        public function 
setTitolo($titolo) {
                
$this->titolo $titolo;
        }