PHP-Vererbung: Unterklasse überschreiben übergeordnete variable/Eigenschaft für die Verwendung im Konstruktor

Habe ich eine (abstrakte) Basisklasse sollen Funktionen anbieten, die während der Bauphase. Kind-Klassen außer Kraft setzen können, - Eigenschaften im Konstruktor:

class Parent extends MiddlewareTest
{
    //abstract channel properties
    protected $title = NULL;
    protected $type = NULL;
    protected $resolution = NULL;

    function __construct() {
        parent::__construct();

        $this->uuid = $this->createChannel($this->title, $this->type, $this->resolution);
    }
}

class Child extends Parent
{
    //channel properties
    protected $title = 'Power';
    protected $type = 'power';
    protected $resolution = 1000;
}

Problem ist, dass die überschriebene Eigenschaften werden nicht verwendet, wenn Child::__construct() die nicht überschrieben läuft ($this->createChannel heißt mit NULL Parameter).

Ist das möglich in PHP oder muss ich zurückgreifen auf Kind überschreiben Konstruktoren jeder Zeit zur Bereitstellung der gewünschten Funktionalität?

Anmerkung: ich sah Gemeinsamen Eigenschaften zwischen Kind und Eltern Klasse in php aber diese ist anders als das Kind Eigenschaften, die nicht zugeordnet sind, im Konstruktor, sondern per definition.

Update

Es stellt sich heraus, mein Testfall war fehlerhaft. Als die MiddlewareTest wurde basierend auf SimpleTest unit-test-Fall, SimpleTest hatte tatsächlich - was ich nicht erkennen -, indem es die autorun instanziiert die Basisklasse selbst das war nie Gegenaktionen. Behoben, indem die Übergeordnete Klasse Abstrakt.

Lessons learned: Aufbau einer sauberen test-Fall und tatsächlich führen Sie es vor und schrie um Hilfe.

InformationsquelleAutor andig | 2013-08-01
Schreibe einen Kommentar