"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Criando um roteador melhor: lidando com entradas HIDDEN e solicitação DELETE

Criando um roteador melhor: lidando com entradas HIDDEN e solicitação DELETE

Publicado em 31/07/2024
Navegar:804

Creating a Better Router : Handling HIDDEN Inputs and DELETE request

Alguns dias atrás, aprendi a construir um roteador básico que mapeia URLs para controladores. Agora, preciso aprimorá-lo para construir um roteador melhor com funcionalidades avançadas. Para construir um roteador melhor que funcione com entradas ocultas, primeiro exclua o arquivo router.php básico do projeto e crie um novo. Vamos começar.

Introdução ao roteamento

Precisamos construir um roteador melhor que mapeie URLs com eficiência para controladores ou ações específicas, permitindo que nosso aplicativo lide com solicitações e as encaminhe para os manipuladores apropriados.
A melhor capacidade do roteador de trabalhar com entradas ocultas permite a exclusão segura de notas, passando o ID da nota para o controlador sem expô-lo na URL, evitando a interferência do usuário.


Crie um arquivo de roteador

Para criar um arquivo roteador, temos que inicializar a classe Router com um namespace, neste caso, Core.





Funções públicas (parâmetros comuns)

À medida que a classe roteador é construída, temos que definir funções públicas nela e todas têm os mesmos parâmetros como get, post, delete, patch e put como rotas essenciais que ajudam nosso site a determinar o que fazer quando alguém visita um determinado página. Essas funções possuem os mesmos parâmetros, permitindo que executem as mesmas ações.

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

Adicionar método

Como todas as funções públicas têm os mesmos parâmetros, então usamos o método add e atribuímos os mesmos parâmetros a ele e apenas para chamá-lo em outras funções. Ele é usado para adicionar uma nova rota ao mapa de roteamento, usando três parâmetros: o método de solicitação, o padrão URI a ser correspondido e o arquivo do controlador para tratar a solicitação.

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

Método de rota

Aqui, definimos o método de rota para determinar a resposta de nosso aplicativo a uma determinada URL, mapeando-o para o controlador correspondente para lidar com a solicitação.

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

Função strtoupper

No método de rota, usamos a função strtoupper para converter uma string em maiúsculas, garantindo uma correspondência sem distinção entre maiúsculas e minúsculas.

strtoupper($method)

Função Protegida (Abortar)

No arquivo router.php definimos o método de aborto como uma rede de segurança, exibindo uma página de erro se nosso site não conseguir encontrar a rota correta.

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

Definições de rota

A última coisa é definir a configuração de roteamento no arquivo Routes.php, mapeando URLs para ações correspondentes do 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');

O método get especifica o método de solicitação(GET) , o padrão de URL e o mapeia para um arquivo controlador.

Conclusão

Concluindo, construímos um roteador melhor que mapeia URLs com eficiência para métodos de controlador específicos, permitindo uma abordagem mais estruturada e sustentável para lidar com solicitações e melhorando o desempenho geral e a escalabilidade do nosso site.

Espero que você tenha entendido claramente.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/ghulam_mujtaba_247/creating-a-better-router-handling-hidden-inputs-and-delete-request-ei7?1 Se houver alguma violação, entre em contato com study_golang@163 .com para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3