我正在使用 AltoRouter 并且效果很好。但是对于每个请求,都会创建一个新的 AltoRouter 实例,因此会创建映射(我遵循了他们 github 页面中的示例)。如何避免这种开销?我在思考单例反模式。大家觉得可以吗?我没有使用 PHP 的经验。
这是代码:
<?php
//begin of singleton
require 'AltoRouter.php';
$router = new AltoRouter();
$router->map('GET', '/', function () {
require '../app/home/controllers/homecontroller.php';
});
//end of singleton
$match = $router->match();
if ($match && is_callable($match['target'])) {
call_user_func_array($match['target'], $match['params']);
} else {
// no route was matched
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}
?>
我的想法是“单一化” AltoRouter 实例并只映射一次所有路由。