PHP: rappresentare i record di un database usando le classi

Short link

In PHP possiamo creare una rappresentazione di un record di un database usando una classe.

Si tratta in sostanza di inizializzare le proprietà di una classe con i valori reperiti tramite una query al database.


require_once 'DB.php';

class Employee {
    protected $id;
    protected $fullname = '';
    protected $role = '';
    protected $department = '';

    public function __construct($id) {
        $this->id = $id;
        $this->load();
    }

    private function load() {
        if(is_int($this->id)) {
            $db = new DB();
            $query = "SELECT * FROM employees WHERE emp_no = {$this->id}";
            $result = $db->getResults($query);
            
            if(count($result) > 0) {
                $this->fullname = $result['fullname'];
                $this->role = $result['role'];
                $this->department = $result['department'];
            }
        } else {
            throw new Exception('Invalid ID.');
        }
    }

    // Getters
}

Le tre proprietà hanno tutte un valore predefinito che viene sovrascritto con i dati presi dal database qualora la query restituisca dei risultati validi.