Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Response

7/14
Recursos

Aportes 13

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Al igual que la clase Request se encargaba de deducir de forma dinámica que es lo que el usuario necesita, la clase Response se está encargando de deducir de igual manera de forma dinámica, dependiendo del request, qué archivo o qué respuesta tiene que enviar, en este caso, busca cuál es la vista que necesita enviar y lo hace de manera dinámica 😄

La función file_get_contents() se usa para almacenar un sitio web o un archivo en una variable tipo string:

<?php
$página_inicio = file_get_contents('www.platzi.com');
echo $página_inicio;
?>

Ahora leyendo un archivo:

$sección = file_get_contents('people.txt');
  • Conocer un lenguaje de programación : sintaxis y funciones propias del lenguaje.

  • ** Saber programación ** : ingeniería de software, patrones de diseño, programación modular, programación, buenas practicas, etc.

  • Uso de Frameworks como herramienta profesional y estandarizada.

Resumen de la clase 💚

Ciclo de Petición → Proceso → Respuesta

  1. El sistema arranca en el index.php el cual es la vista de entrada del usuario.
  2. El usuario comienza una petición y se dispara la clase Request.
  3. La clase Request ejecuta un controlador y un método del mismo en base a la solicitud del usuario.
  4. Es método de ese controlador tiene que ser una configuración de la clase Response para servirle al usuario de una vista, array, json o pdf que necesite.

INDEX – ejecuta la petición con la clase REQUEST ella misma ejecuta el controlador y el método correcto y este método tiene que ser entonces una configuración de RESPONSE

<?php
namespace app\http\controllers;

class response{
    protected $view; //array,json,pdf..

    public function __construct($view)
    {
        $this->view=$view; //ejecuta la vista home o la que tengamos
    }
    public function getview(){
        return $this->view;
    }

    public function send(){
        $view=$this->getview();
        //home se guarda en conten
        $content=file_get_contents(__DIR__ ."/../../view/$view.php");

        require __DIR__ ."/../../layout.php";
    }

}

Excelente

Es gracioso pero yo no sabia que esto era asi y me tope con esto en un proyecto y como aun no habia visto el curso lo que hice fue que por cada peticion rara lo comparaba en un array y si no estaba esa vista en mi array lo devolvia al inicio al usuario :/

El response sería la respuesta del controller

mi código que hicimos en la clase:

<?php

namespace App\Http;

class Response 
{

    protected $view; //array, json, pdf...

    public function __construct($view)
    {
        $this->view = $view; //home, contact
    }

    public function getView()
    {
        return $this->view;
    }


    public function send()
    {
        $view = $this->getView();
        //home
        $content = \file_get_contents(__DIR__."/../../views/$view.php");
        
        require __DIR__."/../../views/layout.php";
    }

}

Entiendo que en la clase Response se hace la definición para identificar qué vista se le va a “responder” al usuario. Es decir, el método send() va a renderizar el código dependiendo de la vista, a su vez este método requiere el código del archivo layout.php supongo que allí va a tener cierta lógica para incluir el código de la vista envuelto en un header y footer (layout).

Lo que no me queda claro es la forma en que se ejecuta el método send() de la clase Response.

Según entiendo la ejecución se hace desde la clase Request, en su propio método send():

Método send de la clase Request:

public function send()
    {
        $controller = $this->getController();
        $method = $this->getMethod();

        // Ejecutar un contralador
        $response = call_user_func([
            // Instanciamso al controlador que guardamos en la variable $controller
            new $controller,
            $method
        ]);

        $response->send();
    }```

Aquí entiendo que la variable $response almacena la función que ejecuta el controlador con el método adecuado. Pero lo que no entiendo es por qué esa misma variable $response ejecuta el método send() (de la clase Response)... a qué hora la variable $response se convirtió en una instancia (objeto) de la clase Response??

No me queda claro.... aun que poco a poco voy entendiendo la lógica de lo que se pretender hacer.