php - 避免重新创建 AltoRouter 实例和映射路线的更好方法
问题描述
我正在使用 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 实例并只映射一次所有路由。
解决方案
推荐阅读
- ms-access - 无法将 Access DB 导入 SQL Server Migration Assistant for Access(32 位)
- r - 如何在 dplyr %>% 运算符之后使用自定义函数?
- ruby-on-rails - “确保提高 ActiveRecord::Rollback”到底是做什么的?
- r - 使用 sparklyr 在 R 中调用火花窗口函数
- c++ - 调用“init_pair”没有匹配的函数
- gatsby - gatsby/netlify CMS - javascript 堆内存不足
- google-cloud-platform - 无法创建数据流模板,因为 Scrapinghub 客户端库不接受 ValueProvider
- sql - 在 T-SQL 中使用逻辑函数进行分组
- java - 尝试交换数组中的最大和最小数字
- javascript - 反应 onChange 文本输入正在将光标移动到输入字段中的文本末尾