public function __construct() { try { $url = isset($_GET['url']) ? explode('/', rtrim($_GET['url'], '/')) : null; if (empty($url[0])) { $url[0] = 'index'; } require 'lib/controllers/pi.controller.php'; $controller = new Pi(); $controller->load_model('pi'); if (!method_exists($controller, $url[0])) { throw new Exception('Invalid method', 404); } $params = array_slice($url, 1); call_user_func_array(array($controller, $url[0]), $params); } catch (Exception $e) { $this->error($e); } }