Originariamente inviato da Emulman
Santino, io uso questo metodo da tantissimo tempo per le mie webapps e funziona benissimo... __construct inizializza le variabili che vengono usate in una classe, e se nel __construct di una classe ereditata ci metti parent::__construct eredita pure le variabili inizializzate nel __construct della classe madre, per cui non c'è alcun bisogno di ridefinire quelle variabili...quindi non mi sembra tanto raccapricciante anzi aiuta tantissimo a risparmiare tempo e fatica!
Non è raccapricciante il metodo __construct, è raccapricciante la definizione che ne dai e come pensi che funzioni. Infatti ti basterebbe fare

Codice PHP:
<?php
class Foo{

protected 
$myVar;

public function 
__construct(){
$this->myVar "Hello";
}

}


class 
Bar extends Foo{

public function 
sayHello(){

echo 
$this->myVar.' World!';
}

}

$bar = new Bar();
$bar->sayHello();
e scopriresti che la frase
e se nel __construct di una classe ereditata ci metti parent::__construct eredita pure le variabili inizializzate nel __construct della classe madre
è raccapricciante e che ha senso ridefinire il costruttore delle classe figlia e richiamare il costruttore della classe madre solo se HAI BISOGNO di ridefinire il costruttore della classe figlia, e che comunque le "variabili della classe madre" le eredita lo stesso e che, se ridefinisci il costruttore nella classe figlia senza chiamare il parent, al più queste variabili della madre non sono valorizzate, ma la figlia le eredita eccome (ovviamente se la figlia ridefinisce il construct e non richiama parent::__construct, è probabile che a runtime l'oggetto non funzioni come ci si aspetti o che non funzioni affatto)

Detto questo, @.Kurt, alla fine è anche inutile suggerire di dare uno sguardo ai design pattern, tanto poi ci si perde sui costruttori ... per non parlare di IoC e affini.