function rum not work after upgrade from php5 to 7.3

23/04/2021

0

PHP

abstract class Bootstrap
{

public function __construct(){
$this->initRoutes();
$this->rum($this->getUrl());
}
private $routes;

abstract protected function initRoutes();

protected function rum($url){
array_walk($this->routes,function ($route) use($url) {
if($url == $route[''''route'''']){
$class = "App\\Controllers".ucfirst($route[''''controller'''']);
$controller = new $class;
$controllers = $controller->$route[''''action''''];
$controllers(); // Will not work on PHP7.
}
});
}

protected function setRoutes(array $routes){
$this->routes = $routes;
}

protected function getUrl(){
return parse_url($_SERVER[''''REQUEST_URI''''],PHP_URL_PATH);
}

}
Essa function rum funcionava na versão php 5.6 e não funciona na versão 7.3 (da erro de Array to string conversion) quando o array_walk está tentando construir uma função nomeada pelo argumento funcname (nome da rota) em cada elemento de array que é utilizada no controller para renderizar a views após instanciado a classname controller.



Alguém sabe como converter esse código para o php 7.3?
Nelson

Nelson

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar