Brian Sánchez Izquierdo
Muy interesante aporte, en mi opinión la página pública debería ser una landing page que explique al visitante que es lo que está visitando.
¿Cómo crear un controlador para el área pública?
Trabajar en el área pública de una aplicación web requiere un enfoque diferente, enfocándose en proporcionar acceso a los usuarios sin necesidad de que inicien sesión. Comencemos configurando un controlador específico para esta área, permitiendo gestionar las páginas públicas. Para esto, utilizaremos un controlador llamado PageController. Este se encargará principalmente de manejar la visualización del "home" donde se mostrarán todos los repositorios creados en orden cronológico. A continuación, te muestro cómo configurar este controlador:
php artisan make:controller PageController
El objetivo es tener un controlador dedicado que gestione de manera eficaz las vistas de las páginas que cualquier usuario puede visitar sin restricciones.
¿Cómo se configura el home para visualizar datos?
Una vez listo el controlador, es momento de configurar la visualización de datos en el home. Queremos mostrar los repositorios de manera que los usuarios puedan verlos fácilmente. A continuación los pasos para hacer esto:
Crear Repositorio: Guardamos un nuevo repositorio en una variable, preferiblemente utilizando un Factory, para asegurar que al menos un dato sea visible.
Visualización de Datos: Utilizamos el método GET para obtener la información en orden cronológico y mostrarla en la vista utilizando una estructura foreach, mostrando elementos clave como la URL y la descripción de los repositorios.
El código para la vista podría verse así:
@foreach($repositorios as $repositorio) <h2>{{ $repositorio->url }}</h2> <p>{{ $repositorio->descripcion }}</p> @endforeach
Esta configuración asegura que cada entrada sea presentada de manera ordenada y clara, facilitando la navegación al usuario.
¿Cómo configurar las rutas adecuadamente?
Configurar las rutas es un paso crucial para que las vistas funcionen correctamente. El objetivo es pasar por el controlador antes de llegar a la vista. Para ello, debemos modificar las rutas en el archivo de configuración web.php:
use App\Http\Controllers\PageController; Route::get('/', [PageController::class, 'home']);
Este código asegura que la ruta raíz ('/') redirija la solicitud a través del PageController, invocando el método home que hemos configurado para mostrar los datos necesarios en la vista.
¿Cómo probar y solucionar errores en la configuración?
Es fundamental asegurarse de que toda la configuración que implementamos funcione correctamente. Para ello, realizamos pruebas utilizando la consola de Laravel:
php artisan test
Si encuentras algún error, como mensajes referidos a la base de datos, recuerda asegurarte de utilizar correctamente las clases necesarias para el manejo de datos. Este paso es crucial para el correcto desenvolvimiento de las pruebas y asegurar que todo responda adecuadamente.
Este proceso incluye verificar:
¿Qué considerar al trabajar con el diseño de la vista?
Finalmente, optimizar el diseño para que sea coherente y amigable es clave. La idea es presentar un entorno sencillo donde el contenido se resalte de manera clara. Puedes optimizarla así:
Con estos pasos, no solo garantizamos una correcta implementación técnica, sino que también aseguramos una experiencia de usuario óptima. ¡Sigue adelante y perfecciona tu diseño y esquema de trabajo!
Brian Sánchez Izquierdo
Muy interesante aporte, en mi opinión la página pública debería ser una landing page que explique al visitante que es lo que está visitando.
Jorge Bou-saad
Asegurense de borrar los ExampleTest porque dan error a la hora de ejecutar todas las pruebas.
Adjunto el commit de esta clase
https://github.com/jlbousing/practica-tdd/commit/3044b2f5bbd685d8def8c0f2b8cf94a6e3beb1c2
Jorge Bou-saad
De verdad recomiendo mucho PHPStorm o algun plugin de VSCode que importe las librerias y clases que se estan usando.
Jimmy Buriticá Londoño
Http/Controllers/PageControllerTest
class PageControllerTest extends TestCase { use RefreshDatabase; public function test_home() { $repository = Repository::factory()->create(); $this ->get('/') ->assertStatus(200) ->assertSee($repository->url); } }