1

"Arreglar" las rutas del proyecto usando Laragon en tu entorno local.

<h1>Espero que este tutorial no haya llegado tan tarde pero, quiero ayudarte a funcionar el proyecto usando Laragon.</h1>

0. ¿Por qué Laragon?

Sencillo, ya me trae todo lo necesario para trabajar, eso me ahorra mucho tiempo y fomenta mi flojera (? 🤣
Si tu también deseas lo mismo, te dejo el link para que lo descargues.
Nota: Debes usar la version fully

1. Obtener el proyecto 🚀

Para ello, debemos ir a este link. Una vez que lo tengas instalado, asegúrate de saber en donde lo pusiste, en mi caso es en esta ruta: C:\laragon\www\BackendPHP\AvanzadoPHP.

2.Configurando el proyecto.

Una vez arrancado Laragon, toca hacer buscar el archivo index.php, el cual se encuentra en tu carpeta public/index.php.
01.png

Lo abres y buscamos este apartado:

//Estan mas o menos por las lineas 120.
$matcher = $routerContainer->getMatcher();
$route = $matcher->match($request);

Debajo de el, crearemos un bloque de codigo donde agreguemos un error para mostrar, seguido de un $var_dump() para conocer que esta pasando en realidad (ya que para este punto no sabemos nada de nada. Entonces, esto quedaría de la siguiente manera:

index.php:

$matcher = $routerContainer->getMatcher();
$route = $matcher->match($request);

//Modificacion para los errores
if(!$route){
  // which matching rule failed?
    echo "No route found for the request.";
    echo "<pre>";
    var_dump($request->getUri());
    echo "</pre>";
    exit;
}

¿De donde salio esto? De la doc del paquete aura/router
Con ello nos saldra una pagina que solo muestre un No route found for request, si gustas, puedes configurar el mensaje para que sea mas bonito (?

3 Testeando

El $var_dump($request->getUri()) nos ayuda a saber cual es la ruta que le llega a Zend, en mi caso solo llega hasta /AvanzadoPHP/index.
02.png

Si se dan cuenta, la ruta que tengo en mi navegador es backendphp.test/AvanzadoPHP/index y el que Zend recibe es /AvanzadoPHP/index. Eso significa que, debemos ir a modificar la parte de $map->get() para poder visualizar correctamente las rutas. Así que, vamos con la primera, la cual es index y esta es la versión del maestro:

$routerContainer = new RouterContainer();
$map = $routerContainer->getMap();

$map->get('index', 'index', [
    'App\Controllers\IndexController',
    'indexAction'
]);

La modificamos de esta manera:


$routerContainer = new RouterContainer();
$map = $routerContainer->getMap();

$map->get('index', '/AvanzadoPHP/index', [
    'App\Controllers\IndexController',
    'indexAction'
]);

3 Probando

Volvemos a intenttar con la misma ruta en el navegador backendphp.test/AvanzadoPHP/index y veamos que sucede:
03.png

Se preguntaran ¿Por qué me arroja el hola amikos? Simple, estoy trabajando con la clase de Closures 😄
04.png

Espero que te haya ayudado y yo me haya explicado c:

Escribe tu comentario
+ 2