Есть такой код для роутинга:
<?php
class Application
{
private $routes;
public function __construct($routes) {
$this->routes = $routes;
}
public function run() {
$url = trim($_SERVER['REQUEST_URI'], '/');
foreach($this->routes as $routeItem) {
list($route, $handler) = $routeItem;
$preparedRoute = \preg_quote($route, '/');
if (\preq_match("/^$preparedRoute$/i", $uri)) {
echo $handler();
return ob_get_clean();
}
}
}
}
$routes = [
['/', function() {
return '<h4>Root</h4>';
}],
['/about', function() {
return '<h4>About</h4>';
}]
];
$app = new Application($routes);
$app->run();
?>
При запуске появляется ошибка:
PHP Fatal error: Uncaught Error: Call to undefined function preq_match()
Как исправить? Функция
preq_match
стандартная же?
repl для теста -
https://repl.it/@monochromer/AlphanumericBlueKilobyte