Buondì.

Stò realizzando un sito in php (logicamente) con il paradigma orientato ad oggetti.
Non posso non ammettere che è un lavoraccio scrivere le classi.
Ho comunque finalmente scritto delle classi. Una astratta che funge da 'padre' per le classi di connessione al db mysql con mysqli. Inoltre ho scritto una classe per richiamare i template e sostituirne i placeholder con il contenuto dinamico. Ora, ecco l'errore che sussiste quando richiamo la classe di connessione al db dell'utente con i permessi per scrivere sul db.


Codice PHP:
Fatal errorCall to private mysqliWriter::__construct() from invalid context in /path/list.php on line 4 
Alla riga 4 del suddetto file c'è il richiamo della classe, ovvero :
Codice PHP:
$db = new mysqliReader
Ora posto la classe di connessione al db e la classe astratta :

Codice PHP:
<?php abstract class connectingDb {
    abstract function 
connect();
    abstract function 
disconnect();
    protected 
$host;
    protected 
$user;
    protected 
$password;
    protected 
$database;
    protected 
$connection;
    protected 
$tmp;
    protected 
$replacers;
    protected function 
setHost($host) {
        
$this->host $host;
    }
    protected function 
setUser($user) {
        
$this->user $user;
    }
    protected function 
setPassword($password) {
        
$this->password $password;
    }
    protected function 
setDatabase($database) {
        
$this->database $database;
    }
    protected function 
getHost() {
        return 
$this->host;
    }
    protected function 
getUser() {
        return 
$this->user;
    }
    protected function 
getPassword() {
        return 
$this->password;
    }
    protected function 
getDatabase() {
        return 
$this->database;
    }
}
?>
Codice PHP:
<?php require_once 'path/getTemplate.php';
require_once 
'path/constantError.php';
class 
mysqliWriter extends connectingDb 
    public 
$host;
    public 
$user;
    public 
$password;
    public 
$database;
    public 
$connection;
    public 
$tmp;
    public 
$replacers;
    private function 
__construct() {
        
$this->setHost('localhost');
        
$this->setUser('');
        
$this->setPassword('');
        
$this->getDatabase('');
    }
    public function 
connect() {
        
$this->getHost();
        
$this->getUser();
        
$this->getPassword();
        
$this->getDatabase();
        
$this->connection = new mysqli($this->getHost(), $this->getUser(), $this->getPassword(), $this->getDatabase());
        if (
mysqli_errno($this->connection)) {
            
$this->tmp = new getTemplate("path/errors.html");
            
$this->replacers = array("error" => DB_NOT_CONNECTED);
            
$this->tmp->replace($this->replacers);
            return print 
$this->tmp->show();
            exit();        
        }
    }
    public function 
query($query) {
        if(
strlen($this->connection->query($query)) > 0) {
            return 
$this->connection->query($query);
        }
    }
    public function 
disconnect() {
        return 
$this->connection->close();
    }
    private function 
__destruct() {
        unset(
$this->host$this->user$this->password$this->database$this->connection);
    }
}
?>
Chiedo scusa per la lunghezza del codice, ma almeno c'è tutto lì. Sicuramente c'è un'errore di logica, perchè non mi pare c'è ne siano di parsing, però non si può mai sapere.
Spero proprio che qualcuno possa aiutarmi e magari darmi qualche dritta per riuscire a procedere senza troppi errori e ad acquisire il senno che stà alla base dello sviluppo oop.


Grazie mille,

buonagiornata ancora