Aplicación del Patrón Strategy

Patrones de Diseño

El Patrón Strategy define una familia de algoritmos, encapsula cada uno y luego los hace intercambiables. Esto se logra utilizando polimorfismo y nos permite desarrollar un sistema más flexible, puesto que, por ejemplo, agregar comportamientos adicionales no requerirá cambiar clases ya existentes en el sistema. En esta lección vamos a aplicar el Patrón Strategy en nuestro ejemplo, para ello utilizaremos diversos métodos de Refactorización y nos apoyaremos en las pruebas automatizadas escritas previamente con PHPUnit.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Patrón Strategy: Agregando comportamiento adicional de manera condicional

Patrones de Diseño

En la lección anterior, creamos un pequeño ejemplo base utilizando Composer, PHPUnit y otras dependencias, en esta lección agregaremos comportamiento adicional a la clase de ejemplo (Mailer) y para ello utilizaremos condicionales, lo cual complicará el código de varias maneras que nos llevarán a visualizar porqué necesitamos aplicar refactorización y un patrón de diseño (en nuestro caso, Strategy) para solucionar los inconvenientes.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Patrón Strategy: Creación del proyecto de ejemplo

Patrones de Diseño

En esta y las próximas lecciones del Curso de Patrones de Diseño con PHP vamos a aprender sobre el Patrón Strategy. Para ello, voy a comenzar creando un nuevo proyecto demo utilizando Composer y a escribir un pequeño ejemplo de una clase para Mailer (para el envío de emails) apoyándome en PHPUnit para el desarrollo guiado por pruebas automatizadas (TDD) y en 2 dependencias para el envío de e-mails y para interactuar con la API de Mailtrap. Esta lección y la siguiente me servirán para plantear el escenario que va a requerir el uso del patrón en la tercera lección. Si solo quieres ver cómo se aplica el patrón puedes pasar a la tercera lección (publicación pendiente).

Regístrate para ver ésta y cientos de lecciones exclusivas.

Uso de gates y policies con usuarios anónimos en Laravel 5.7

En esta lección 30 del Curso de Técnicas de autorización con Laravel, realizaré un pequeño ejercicio: crearé la página del detalle del post y el contenido del post será visible únicamente para los usuarios conectados o para aquellos usuarios anónimos que hayan aceptado los términos y condiciones de uso. Lo que quiere decir que por primera vez en el curso escribiremos una regla que debe funcionar aunque el usuario no haya iniciado sesión. Para lograr esto nos apoyaremos en un nuevo feature disponible a partir de Laravel 5.7, además vamos a probar el componente Laravel Dump Server y las nuevas páginas de error de Laravel.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Roles y Permisos con Laravel 5.7 y Bouncer

En esta lección voy a actualizar la aplicación del Curso de Técnicas de autorización con Laravel a la versión 5.7 del framework para verificar si lo aprendido hasta ahora funciona en esta nueva versión de Laravel o si necesitamos hacer cambios, para ello comenzaré descargando el proyecto de git y configurando todo lo necesario para realizar pruebas en el navegador y ejecutar las pruebas automatizadas de las funcionalidades desarrolladas hasta ahora.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Filtro por rango de fechas con Eloquent y el constructor de consultas de Laravel

Panel de Control

En la lección 40 del curso Crea un Panel de Control con Laravel, vamos a trabajar en el último filtro que nos hace falta para completar esta parte del curso, me refiero al filtro por rango de fecha, el cual consta de 2 campos, con estos campos podremos obtener usuarios registrados en cierto rango de tiempo: por ejemplo en la última semana o durante el último mes. Para ello usaremos nuevamente nuestra clase de filtros UserFilter, Eloquent, el constructor de consultas, TDD y esta vez incluiremos el uso de Carbon para trabajar con fechas.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Filtros complejos con subconsultas de SQL y uso de macros con Eloquent ORM

Panel de Control

En esta lección 39 del curso Crea un Panel de Control con Laravel, vamos a crear un filtro aún más complejo, puesto que trabajaremos en el filtro por listado de habilidades el cual está representado en nuestra vista como una lista de checkboxes. Para visualizar a los usuarios que posean todas las habilidades seleccionadas vamos a tomar dos rutas, la primera utilizando la relación belongsToMany definida en el modelo junto con whereHas y havingRaw  y la segunda con la creación de una sub-consulta de SQL utilizando el constructor de consultas de Laravel, la cual finalmente simplificaremos con el uso de macros o herencia para definir métodos personalizados en dicho constructor. Todo esto pondrá a prueba nuestros conocimientos de SQL, programación orientada a objetos y Eloquent.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.