"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Creación de un mejor enrutador: manejo de entradas OCULTAS y solicitud de ELIMINACIÓN

Creación de un mejor enrutador: manejo de entradas OCULTAS y solicitud de ELIMINACIÓN

Publicado el 2024-07-31
Navegar:444

Creating a Better Router : Handling HIDDEN Inputs and DELETE request

Hace unos días, aprendí a construir un enrutador básico que asigna URL a controladores. Ahora necesito mejorarlo para construir un enrutador mejor con funcionalidad avanzada. Para construir un mejor enrutador que funcione con entradas ocultas, primero que nada elimine el archivo básico router.php del proyecto y cree uno nuevo. Empecemos.

Introducción al enrutamiento

Necesitamos crear un enrutador mejor que asigne de manera eficiente las URL a controladores o acciones específicas, permitiendo que nuestra aplicación maneje las solicitudes y las enrute a los controladores apropiados.
La mejor capacidad del enrutador para trabajar con entradas ocultas permite la eliminación segura de notas al pasar el ID de la nota al controlador sin exponerlo en la URL, lo que evita la interferencia del usuario.


Crear un archivo de enrutador

Para crear un archivo de enrutador, tenemos que inicializar la clase de enrutador con un espacio de nombres, en este caso, Core.





Funciones públicas (parámetros comunes)

A medida que se construye la clase de enrutador, tenemos que definir funciones públicas en ella y todas tienen los mismos parámetros como obtener, publicar, eliminar, parchear y colocar como rutas esenciales que ayudan a nuestro sitio web a determinar qué hacer cuando alguien visita una determinada página. Estas funciones tienen los mismos parámetros, lo que les permite realizar las mismas acciones.

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); }

Agregar método

Como todas las funciones públicas tienen los mismos parámetros, usamos el método add y le damos los mismos parámetros y solo para llamar esto en otras funciones. Se utiliza para agregar una nueva ruta al mapa de enrutamiento, tomando tres parámetros: el método de solicitud, el patrón de URI que debe coincidir y el archivo del controlador para manejar la solicitud.

public function add($method, $uri, $controller) { 
  $this->routes[] = [ 
    'uri' => $uri, 
    'controller' => $controller, 
    'method' => $method 
  ]; 
}

Método de ruta

Aquí, definimos el método de ruta para determinar la respuesta de nuestra aplicación a una URL determinada, asignándola al controlador correspondiente para manejar la solicitud.

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(); 
}

Función strtoupper

En el método de ruta, utilizamos la función strtoupper para convertir una cadena a mayúsculas, asegurando una coincidencia que no distinga entre mayúsculas y minúsculas.

strtoupper($method)

Función protegida (Abortar)

En el archivo router.php definimos el método de cancelación como una red de seguridad, mostrando una página de error si nuestro sitio web no puede encontrar la ruta correcta.

protected function abort($code = 404) { 
  http_response_code($code); 
  require base_path("views/{$code}.php"); 
  die(); 
}

Definiciones de ruta

Lo último es definir la configuración de enrutamiento en el archivo route.php, asignando las URL a las acciones correspondientes del controlador.

$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');

El método get especifica el método de solicitud (GET), el patrón de URL y lo asigna a un archivo de controlador.

Conclusión

En conclusión, hemos creado un enrutador mejor que asigna de manera eficiente las URL a métodos de controlador específicos, lo que permite un enfoque más estructurado y fácil de mantener para manejar las solicitudes y mejorar el rendimiento general y la escalabilidad de nuestro sitio web.

Espero que lo hayas entendido claramente.

Declaración de liberación Este artículo se reproduce en: https://dev.to/ghulam_mujtaba_247/creating-a-better-router-handling-hidden-inputs-and-delete-request-ei7?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3