The static method of the abstract class Router creates an object, an instance of one of the classes prepared in advance. The class that is instantiated is chosen by the name obtained by the static method of the Router class.
A hierarchy of classes is used, led by an abstract class, the render() method, which is overridden in descendants and is also supplemented when overridden using parent::
Статический метод абстрактного класса Router создает объект, экземпляр одного из классов, заранее заготовленных. Класс, экземпляр которого создается, выбирается по имени, полученным статическим методом класса Router.
Используется иерерхия классов во главе с абстрактным классом, метод render(), которого переопределяется в наслдениках и также дополняется при переопределении используя parent::