Configuración de Requests en PHP para Controladores y Métodos

Clase 5 de 14Curso de Introducción a Frameworks de PHP

Resumen

¿Cómo procesar solicitudes en una aplicación web?

Cuando construimos aplicaciones web, uno de los aspectos más cruciales es entender qué solicita el usuario y cómo el sistema debe responder. Aquí desglosamos cómo manejar las solicitudes y qué elementos clave necesitamos configurar para lograr una comunicación fluida entre el cliente y el servidor.

¿Qué es el procesamiento de una petición?

El procesamiento de una petición se refiere a interpretar lo que el usuario solicita a través de una URL. Este proceso implica descomponer la solicitud para identificar la acción que debe tomar el sistema. En términos simples, necesitamos configurar un archivo que sea capaz de leer lo que el usuario quiere (lo que está pidiendo en la URL) y preparar una respuesta adecuada. Aquí nos enfocaremos en entender esa demanda inicial, dejando para una clase posterior cómo se entrega la respuesta.

Para comenzar, trabajaremos con la configuración básica de una clase en PHP que procesará dichas peticiones. Esto se muestra en el siguiente ejemplo de código:

namespace App\Http;

// Inicializamos las propiedades necesarias para manejar los segmentos de la URL
class Request
{
    protected $segments = [];
    protected $controller;
    protected $method;

    // Constructor que llena de datos las propiedades
    public function __construct()
    {
        $this->segments = explode('/', $_SERVER['REQUEST_URI']);
        $this->setController();
        $this->setMethod();
    }

    protected function setController()
    {
        $this->controller = empty($this->segments[1]) ? 'home' : $this->segments[1];
    }

    protected function setMethod()
    {
        $this->method = empty($this->segments[2]) ? 'index' : $this->segments[2];
    }
}

¿Cómo interpretar la URL para definir el controlador y el método?

La URL nos proporciona toda la información necesaria para identificar qué controlador y método debemos utilizar. La estructura típica que manejamos es dominio/controlador/metodo. Aquí hay algunos puntos importantes que cubrir:

  1. Controlador: Es el elemento que determina qué parte de la aplicación gestiona la solicitud. Si no se especifica un controlador en la URL, se asume home como el controlador predeterminado.
  2. Método: Es la acción específica dentro del controlador que se ejecutará. Si no se especifica un método, se usa index por defecto.

Por ejemplo, si la URL que procesamos es platzi.test/servicios, interpretamos que se utilizará ServiciosController con el método index por defecto si no se define uno.

¿Cómo se convierte una URL en un array?

Para procesar correctamente la solicitud, convertimos la URL (un string) en un array para trabajar con cada segmento individualmente. Usamos la función explode() de PHP, que nos permite dividir la cadena de la URL en partes (segmentos).

Aquí está el simple ejemplo del código utilizado para ello:

$this->segments = explode('/', $_SERVER['REQUEST_URI']);

Este método nos permite acceder fácilmente a diferentes partes de la URL como {$this->segments[1]} para el controlador y {$this->segments[2]} para el método.

Ejercicio práctico

Te invito a realizar este ejercicio por ti mismo. Configura una clase en PHP para manejar las solicitudes como se describe. Luego prueba diferentes URLs en tu sistema local para verificar que los controladores y métodos se identifican correctamente según lo esperado. Esta práctica te ayudará a captar mejor la lógica detrás del procesamiento de solicitudes, una base esencial para trabajar con frameworks como Laravel.

Nos encantaría saber cómo te va, ¡así que no olvides compartir tus avances y preguntar dudas en la sección de comentarios!