У меня есть класс с функцией фабричного шаблона:
abstract class ParentObj {
public function __construct(){ ... }
public static function factory(){
//returns new instance
}
}
Мне нужно, чтобы дети могли вызывать фабричную функцию и возвращать экземпляр вызывающего класса: $child = Child::factory();
и предпочтительно без переопределения фабричной функции в дочернем классе.
Я пробовал несколько разных способов добиться этого, но безрезультатно. Я бы предпочел держаться подальше от решений, использующих отражение, таких как __CLASS__
.
(я использую PHP 5.2.5, если это имеет значение)