私は学習目的のために独自のフレームワークを構築しています。URLプレースホルダ一致する正規表現
urlはlocalhost/admin/viewと言いますが、正しいルートと正しいコントローラとの対応は問題ありません。この問題は、urlに次のようなIDがある場合に発生します。localhost/admin/view/12私は、URLと一致するように定義されたルートを含む私のルート配列(フレームワークのアプローチ)をプレースホルダimを使用しようとしています。私はプレースホルダを持つルート配列から値をURLと一致する方法がわからない
public function getRoute() {
$this->route = array(
[
'url' => "admin/view",
'controller' => 'AdminController',
'action' => 'viewPosts',
'type' => 'GET'
],
[
'url' => "admin/view/{id}",
'controller' => 'AdminController',
'action' => 'viewPostById',
'type' => 'GET'
],
[
'url' => "admin/store/posts",
'controller' => 'AdminController',
'action' => 'storePosts',
'type' => 'POST'
],
);
}
:ここ
は、ルート・アレイがどのように見えるかです。 URLがlocalhost/admin/view/1の場合と同様に、配列の値admin/view/{id}とどのように一致させるのですか?その後、どのようにしてURLからGETパラメータを簡単に取得できますか?私はparamsがあまりにもハードではないはずですが、私はURLを爆発させずに(多分正規表現を使って)多すぎる操作をしないでそれらを取得しようとしていることを知っています。
おそらく私はそれをとてもうまく説明しませんでしたが、私の.htaccessは、フレームワークのようにきれいなURLを使ってindex.phpにすべてをリダイレクトしています。私はちょうど{id}のようなプレースホルダーを求めていました。 Btw the admin/view /.*私は既にadmin/view /。\ d * $と同様のものを試していましたが、私はそれを見つけることができませんでした。フレームワークの内部メカニズムがルーティングのために通常どのように機能するのかを少し説明してください。フレームワークがそれらを分割して送出する方法をフレームワークが処理する方法に似ていますか? –