私は現在、教育用 (そして、それが良い場合は実際の実用的なもの) 用のカスタム 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 を渡し、ルーティング用に解析することは問題ありませんか?
ありがとうございます。また、私はこれらのことについて学んでいるので、代わりに何をすべきかについての提案を心から歓迎します.