No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Compra acceso a todo Platzi por 1 a帽o

Antes: $249

Currency
$209/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

16D
0H
48M
58S

Repaso final

11/14
Recursos

Aportes 15

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥渢rabajo 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 鈥渘amespaces鈥 o la cuesti贸n del 鈥渦se鈥 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.