php artisan make:policy RepositoryPolicy
php artisan test
Modificaciones:
- app/Http/Controllers/RepositoryController.php
- app/Policies/RepositoryPolicy.php
- app/Providers/AuthServiceProvider.php
Introducción
Desarrollo de Aplicaciones en Laravel con TDD y PHP Unit
Desarrollo de Proyectos con TDD en Laravel y Testing PHP
Proyecto
Instalación y configuración inicial de proyectos en Laravel
Configuración de Relaciones y Pruebas Unitarias en Laravel
Configuración de Relaciones en Laravel usando Testing
Protección de Rutas en Laravel con Middleware de Autenticación
Pruebas Automatizadas para Registro y Redirección en Base de Datos
Configuración de Actualización de Registros con Pruebas en PHP
Validación de Datos en Controladores: Configuración y Pruebas
Eliminación de Registros en Base de Datos con PHP y Tests
Póliticas de Acceso
Configuración de Políticas de Acceso en Repositorios
Políticas de Acceso y Eliminación de Repositorios en PHP
Configuración de Acceso a Repositorios Propios en Aplicaciones Web
Configuración del Método Show en Controladores PHP
Vistas del proyecto
Formulario de Edición con Diseño y Tests en Laravel
Testing de Formularios en PHP: Creación y Validación de Vistas
Configuración de Controladores y Vistas en Laravel para el Área Pública
Diseño Web con Tailwind CSS: Mejora de Apariencia y Formato
Pruebas y Configuración de Seeders en Proyectos Laravel
Refactorización
Refactorización de Código con Validación en PHP
Refactorización de Políticas de Acceso en Laravel
Configuración de Botones para Repositorios en Proyectos Web
Conclusión
Importancia de las Pruebas en Desarrollo de Software
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La refactorización es una etapa crucial dentro del ciclo de desarrollo de software, especialmente cuando aplicamos el desarrollo guiado por pruebas (TDD). En este proceso, después de confirmar que las pruebas pasan con éxito, tenemos la oportunidad de optimizar nuestro código para hacerlo más legible y mantenible. Durante esta clase, nos enfocamos en las políticas de acceso y cómo implementarlas eficazmente en Laravel para mejorar nuestro código, simplificar la lógica y asegurar que el código continúe funcionando correctamente después de los cambios.
Para empezar con la refactorización en Laravel, creamos una política utilizando el comando phpArtisan
de la siguiente manera:
php artisan make:policy NombreDeLaPolitica
Se recomienda terminar el nombre con el sufijo "Policy" para mantener una convención estándar. Crear políticas nos permite encapsular condiciones que podemos reutilizar en distintas partes de nuestra aplicación.
Una vez creada la política, la siguiente labor es configurarla adecuadamente en el controlador:
Registrar la política: La política debe ser registrada en el AuthServiceProvider
de Laravel para que el framework la reconozca y pueda aplicarla.
Ajustar el controlador: Empezamos por reemplazar las comprobaciones condicionales con llamadas al método authorize
, que aprovechará la lógica definida en la política. Esto no solo simplifica el código, sino que también mejora su legibilidad.
$this->authorize('pass', $recurso);
Eliminar el uso redundante de Request
: Al cambiar la forma de acceder a la información del usuario, podemos eliminar la dependencia directa del objeto Request
, reduciendo la complejidad y mejorando la eficiencia del código.
Durante el proceso de refactorización, es esencial ejecutar tests para garantizar que el sistema sigue funcionando como se espera. Si al realizar cambios, alguno de los tests falla, es necesario revisitar el código, identificar errores o inconsistencias y corregirlos antes de avanzar.
Los tests nos indican que un cambio no ha impactado negativamente en el sistema:
Verifica errores de clase faltante: Si intentas usar una clase que no existe o no está correctamente importada, se mostrarán errores. Asegúrate de que todas las clases estén correctamente declaradas e importadas.
Mantén las configuraciones: Al unir modelos a políticas en el AuthServiceProvider
, asegúrate de seguir correctamente el ejemplo proporcionado y descomentar las líneas de ejemplo si es necesario.
El testing es una herramienta invaluable cuando se hacen cambios extensos en la base de código. Los tests permiten:
Al realizar el ejercicio de refactorización y testing, podrás avanzar al siguiente nivel con seguridad. La refactorización no solo mantiene el código limpio y eficiente, sino que asegura que el desarrollo sea sostenible a largo plazo.
Aportes 8
Preguntas 0
php artisan make:policy RepositoryPolicy
php artisan test
Modificaciones:
Se pudiera utilizar owner en lugar de pass creo que seria un nombre más explicito para nuestra policy
Muy interesante…excelente curso. Aunque tengo mucho tiempo trabajando con Laravel, sabia que existian las Policies pero nunca las habia usado…me gusto muchisimo y efectivamente ayuda a que el codigo sea mas limpio…Laravel es quizas el framework de desarrollo web mas completo…al menos de php…
Les dejo mi commit de la clase
https://github.com/jlbousing/practica-tdd/commit/6f7f881171a8fc812151cf2483a7b6b0e378b417
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?