sfsf
Новичок
есть главный класс маршрутизации Routing
у него есть переменная массив $this->routing_map
в конструкторе $this->routing_map присваивается массив со значениями по умолчанию
есть потомки класса которые наследуют класс Routing
у них в конструкторе вызывается parent::__construct();
после чего к $this->routing_map прибавляется новый массив
Теперь главная проблема
в другом классе который называется Rout создается обьект Routing и идет перебор в цикле классов потомков
логика примерно такая
главная цель цикла получить на выходе обновленный $this->routing_map который будет содержать массив - все изменения из всех классов потомков и главного класса
код выше работать не будет, так как в массиве $routing->routing_map будут только обновления из последнего класса потомка а не из всех
как правильно исправить?
у меня в голове вариант отказаться от наследования и сделать в классе Routing функцию добавления нового массива
но мне хочется сделать с наследованием, есть варианты решения этой головоломки?
какой паттерн больше всего подойдет для решения этой задачи
у него есть переменная массив $this->routing_map
в конструкторе $this->routing_map присваивается массив со значениями по умолчанию
есть потомки класса которые наследуют класс Routing
у них в конструкторе вызывается parent::__construct();
после чего к $this->routing_map прибавляется новый массив
Теперь главная проблема
в другом классе который называется Rout создается обьект Routing и идет перебор в цикле классов потомков
логика примерно такая
PHP:
$routing = new Routing();
foreach(ляляля as $class) {
$new_routing=new $class();
$routing->routing_map=$new_routing->routing_map;
unset($new_routing);
}
код выше работать не будет, так как в массиве $routing->routing_map будут только обновления из последнего класса потомка а не из всех
как правильно исправить?
у меня в голове вариант отказаться от наследования и сделать в классе Routing функцию добавления нового массива
но мне хочется сделать с наследованием, есть варианты решения этой головоломки?
какой паттерн больше всего подойдет для решения этой задачи