私は 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 インスタンスを「シングルトン化」し、すべてのルートを一度だけマッピングすることです。