No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

16 Días
4 Hrs
38 Min
29 Seg

Repaso final

11/14
Recursos

Aportes 15

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Repaso:

Todo arranca en el index.php, este se encarga de llamar a nuestra clase Request, esta clase a su vez, se encarga de cargar el controlador necesario de manera dinámica dependiendo de lo que el usuario haya pasado por la URL, ya que logró identificar cuál es el controlador que tiene que llamar, simplemente lo llama, y esta clase está esperando que dicho controlador retorne una instancia de Response para poder mandar la vista.

Response por su parte, dependiendo de lo que hayas establecido en el controlador, se encarga de buscar cuál es la vista que tiene que envíar y cargarla en una variable, para posteriormente imprimir esa variable dentro del template y así cargar de manera dinámica las páginas que van a conservar una estructura HTML en común siempre. Obviamente nuestro controlador retornará una instancia de Request indicando cuál es la vista que queremos.

Y para facilitar todavía más las cosas, podemos usar helpers que se encarguen del “trabajo sucio”, así hacemos código más legible y bonito 😄

Me encanta la metodología de esta serie de cursos en la que explican el porqué de cada cosa. Yo no era muy fan de PHP pero con esta ruta si que me ha gustado bastante!

Modelo-Vista-Controlador de Laravel

Me parece una mala práctica capturar excepciones genéricas porque silenciamos errores… puede estar pasando cualquier cosa con nuestro sistema y no vamos a saber que es lo que se rompió hasta que quitemos ese bloque try/catch… Es bueno capturar excepciones, pero tenemos que saber que excepción es la que estamos capturando para poder tratarla específicamente, si el sistema se rompe por algo que no sabemos que es, pues hay que dejar que se rompa para poder arreglarlo, no silencien errores, captúrenlos.

Agregue una pequeña validación para comprobar que la clase existe, si no es el caso, redirige a un controlador especifico para la página de error 404.

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

        if (class_exists($controller)) {
            $controller = new $controller;
        }else{
            $controller = "App\Http\Controllers\Notfoundcontroller";
        }
        // Disparar y ejecutar un controlador 
        $response = call_user_func([
            new $controller, 
            $method
        ]); 
        // Validación extra para asegurar que la respuesta sea una instancia de la clase que estamos esperando 
        try {
            if ($response instanceof Response) {
                $response->send();
            } else {
                throw new \Exception("Error Processins Request");
            }
        } catch (\Exception $e) {
            echo "Details {$e->getMessage()}";
        }
    }

Mi solución para el error 404 fue cambiar el método getController de Reques.php, algo hardcodeado, pero como un primer intento, considero que está bien.

public function getController(){
        $controller = ucfirst($this->controller);

        if (file_exists(__DIR__."/Controllers/{$controller}Controller.php")){
            return "App\Http\Controllers\\{$controller}Controller";
        }else{
            return "App\Http\Controllers\NotFoundController";
        }

    }

con esto solo añadimos unas líneas para ver si existe la clase y por ende el controlador. Obvio, puede haber más validaciones, pero considero que es una primera.

Tenía mucho tiempo sin entender precisamente como era el flujo de este tipo de frameworks hasta ahora, de verdad este curso me ha ayudado a despejar muchas dudas.

No sé si en algún punto de los cursos más avanzados se explique más a profundidad cuestiones como los “namespaces” o la cuestión del “use” que creo que para alguien que viene completamente desde cero podría ser confuso no saber cual es su origen o su uso realmente.

Excelente resumen, muy practico… por la excelente clase…

Suele pasar que en la universidad, te hacen usar ya sea frameworks como Laravel o Yii2, y si de por si hay chicos que aun les cuesta la programacion, será peor para ellos si les lanzas un framework sin saber como es el flujo de carpetas y trabajo de estos, simplemente sigo con la boca abierta con este curso, me esta ayudando muchisimo para el presente y estoy seguro que tambien lo será para el futuro

Reto

Excelente, aunque agregaría que durante el desarrollo es fundamental loguear también el stacktrace.

Buen resumen final.

Excelente

Excelente repaso

tengo el siguiente error The requested resource / was not found on this server.