У меня есть некоторые проблемы с концепцией беглых сеттеров. Я создал 2 предложения, которые происходят от одного и того же родителя. И я помещаю общие атрибуты между ними в родительский класс, и я хочу поместить туда установщики, чтобы не повторять один и тот же код для каждого дочернего класса.
Например:
<?php
class Vehicle {
protected $color;
protected $wheels;
public function setColor($color) {
$this->color = $color;
return $this;
}
public function setWheels($wheels) {
$this->wheels = $wheels;
return $this;
}
}
class Motorbike extends Vehicle {
protected $engine;
public function setEngine($engine) {
$this->engine = $engine;
return $this;
}
}
class Bike extends Vehicle {
}
Моя проблема, когда я делаю это:
$motorbike = new Motorbike();
$motorbike->setColor('blue')
->setEngine(4.2) // Here the returned '$this' referes to the parent class Vehicle, so the setEngine doesnt' exist.
->setWheels(4)
Есть ли вероятность, что родитель вернет $ this refering дочернему классу? Или есть лучший способ сделать это?
Спасибо!
Задача ещё не решена.
Других решений пока нет …