数日前、私は URL をコントローラーにマップする基本的なルーターの構築方法を学びました。ここで、高度な機能を備えたより優れたルーターを構築するためにこれを強化する必要があります。非表示の入力を使用して動作するより良いルーターを構築するには、まず基本的な router.php ファイルをプロジェクトから削除し、新しいファイルを作成します。はじめましょう。
URL を特定のコントローラーまたはアクションに効率的にマッピングして、アプリケーションがリクエストを処理し、適切なハンドラーにルーティングできるようにする、より優れたルーターを構築する必要があります。
非表示の入力を処理する優れたルーターの機能により、ノート ID を URL に公開せずにコントローラに渡すことで、安全なノートの削除が可能になり、ユーザーの干渉を防ぐことができます。
ルーター ファイルを作成するには、名前空間 (この場合は Core) を使用して Router クラスを初期化する必要があります。
パブリック関数(共通パラメータ)
ルーター クラスが構築されると、その中にパブリック関数を定義する必要があります。また、ルーター クラスにはすべて、誰かが特定のサイトにアクセスしたときに Web サイトが何を行うかを決定するのに役立つ重要なルートとして、get、post、delete、patch、put などの同じパラメーターが含まれています。ページ。これらの関数には同じパラメータがあり、同じアクションを実行できます。
public function get($uri, $controller) { $this->add('GET', $uri, $controller); } public function post($uri, $controller) { $this->add('POST', $uri, $controller); } public function delete($uri, $controller) { $this->add('DELETE', $uri, $controller); } public function patch($uri, $controller) { $this->add('PATCH', $uri, $controller); } public function put($uri, $controller) { $this->add('PUT', $uri, $controller); }メソッドの追加
すべてのパブリック関数には同じパラメータがあるため、add メソッドを使用してそれに同じパラメータを与え、他の関数でこれを呼び出すだけです。これは、ルーティング マップに新しいルートを追加するために使用され、リクエスト メソッド、照合する URI パターン、リクエストを処理するコントローラ ファイルの 3 つのパラメータを受け取ります。
public function add($method, $uri, $controller) { $this->routes[] = [ 'uri' => $uri, 'controller' => $controller, 'method' => $method ]; }ルートメソッド
ここでは、指定された URL に対するアプリケーションの応答を決定するルート メソッドを定義し、それを対応するコントローラーにマッピングして要求を処理します。
public function route($uri, $method) { foreach ($this->routes as $route) { if ($route['uri'] === $uri && $route['method'] === strtoupper($method)) { return require base_path($route['controller']); } } $this->abort(); }strtoupper 関数
ルート メソッドでは、strtoupper 関数を使用して文字列を大文字に変換し、大文字と小文字を区別しない一致を保証します。
strtoupper($method)保護された関数 (中止)
router.php ファイルで、Web サイトが正しいルートを見つけられない場合にエラー ページを表示するセーフティ ネットとして中止メソッドを定義しました。
protected function abort($code = 404) { http_response_code($code); require base_path("views/{$code}.php"); die(); }ルート定義
最後に、routes.php ファイルでルーティング設定を定義し、URL を対応するコントローラー アクションにマッピングします。
$router->get('/', 'controllers/index.php'); $router->get('/about', 'controllers/about.php'); $router->get('/contact', 'controllers/contact.php'); $router->get('/notes', 'controllers/notes/index.php'); $router->get('/note', 'controllers/notes/show.php'); $router->get('/notes/create', 'controllers/notes/create.php');get メソッドはリクエスト メソッド (GET) 、URL パターンを指定し、それをコントローラー ファイルにマップします。
結論
結論として、URL を特定のコントローラー メソッドに効率的にマッピングする、より優れたルーターを構築しました。これにより、リクエストを処理するためのより構造化された保守可能なアプローチが可能になり、ウェブサイトの全体的なパフォーマンスとスケーラビリティが向上します。
しっかりと理解していただけたと思います。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3