我目前正在制作一个自定义 MVC 框架以供教育(并且,如果它很好的话,实际实用)使用,我喜欢研究不同的场景以实现可能的性能提升。
说到URI路由,我比较熟悉的标准URI格式
/controller/action/id
并且从中解析数据以控制路由不会太困难。现在,我更想知道的是让 nginx 将此 URI 字符串解析为某种类型的查询字符串以直接传递给控制器之间的性能差异,因此最终会像
/foo/bar/12 => /application/foo.php?action=bar&id=12
代替
/foo/bar/12 => /index.php?controller=foo&action=bar&id=12
甚至
/foo/bar/12 => /index.php?uri=/foo/bar/12 (note that this would be encoded)
我知道 nginx 已经在其他变量中将 url、查询字符串和其他内容传递给 php-fpm,但这只是为了说明我的想法。
这是一件愚蠢的事情吗?我知道通过在 nginx 中明确定义路由意味着我每次更改配置中的路由时都需要重新启动 nginx,这可能是一个缺点。
所以,重申一下这个问题:当涉及到 MVC 路由时,让实际的 web 服务器(在本例中为 nginx)本身处理到控制器的路由或使用标准的登陆脚本(如 index.html)是否有任何值得的性能提升。 php 在目录的根目录中)并传递要解析的 URI 以完美地路由?
提前谢谢。另外,我只是在学习这些东西,所以我全心全意地欢迎关于我应该做什么的建议。