PHP: public static function dispatch($url) { if (!self::matchRoute($url)) { throw new Error('Страница не найдена'); } $controller = self::$namespace . self::$route['controller'] . 'Controller'; if (!class_exists($controller)) { throw new Error("Контроллер {$controller} не найден", 404); } // тут в конструкторе создаваемоого объекта имена параметров можно именовать как угодно // они тупо принимают значения ключей массива по порядку // это не есть гут :) $cObj = new $controller(self::$route, ...array_values(self::$params)); $action = self::$route['action'] . 'Action'; if (!method_exists($cObj, $action)) { throw new Error("Метод {$controller}::{$action} не найден", 404); } // тут в вызываемом методе имена параметров соответствуют ключам массива call_user_func_array([$cObj, $action], self::$params); } Хотелось бы конструкторе юзать ключи массива по именам параметров тоже. Как реализовать call_user_func_array в конструкторе?