Las pruebas de integración son fundamentales para garantizar que los diferentes componentes de nuestra aplicación funcionen correctamente juntos. En este post, dejo los pasos para configurar pruebas de integración en PHP utilizando PHPUnit, Docker y Phinx para las migraciones de base de datos.
Continúo refinando la librería auth-lib, pensada para proyectos que necesitan gestionar sign up, login, etc, siguiendo los lineamientos de Clean Architecture. En esta entrega voy a añadir el campo rol, ya que es común tener que diferenciar entre el inicio de sesión de un admin y el de un usuario común, con menos privilegios.
Cuarta iteración con auth-lib, una librería que estoy desarrollando para usar en mis proyectos, y para quien le sea útil, siguiendo los lineamientos de Clean Architecture. Ya tengo una versión funcional del caso de uso SignUp
, con posibilidad de ser extendido para cubrir diferentes escenarios. Ahora es el turno de empezar con el caso de uso Login
, que es el tema de este post.
Ya tenemos el caso de uso para Sign Up que desarrollamos en el primer post de esta serie y luego modificamos en el post anterior para permitir personalizar las validaciones. De momento, nuestro caso de uso solo permite registrar usuario y contraseña. ¿Cómo puede nuestra librería permitir gestionar más información durante el registro de usuarios? ¿Qué tal si queremos almacenar nombres, apellidos, o algún “organizationId” por nombrar algo? En este post vamos a encapsular los datos de usuario en un objeto que podrá ser extendido.
En mi post anterior, comencé a desarrollar una librería en PHP utilizando Clean Architecture para gestionar la creación de usuarios e inicio de sesión. En esta segunda parte, me enfocaré en ampliar y mejorar el caso de uso de registro (Sign Up), permitiendo flexibilidad de la librería para adaptarse a diferentes escenarios. Veremos cómo podemos estructurarla de manera que sea fácilmente extensible, permitiendo validaciones personalizadas según las necesidades específicas de cada proyecto. Esta continuación no solo busca mejorar nuestra implementación inicial, sino también proporcionar una base robusta y adaptable para futuros desarrollos.
¿Te has encontrado creando una y otra vez los casos de uso para registrar e iniciar sesión en todos tus proyectos, ya sean personales o profesionales? En este post, voy a compartir mis notas personales sobre cómo desarrollar una librería en PHP utilizando Clean Architecture para gestionar la creación de usuarios y el inicio de sesión. Esta es una guía que estoy creando principalmente para mí mismo, para afianzar conceptos y de paso, para reutilizar en futuros proyectos donde los grandes proveedores de gestión de usuarios, como Auth0 o Supabase, aún no son una opción viable. Espero que estas notas también te sean útiles y te ahorren tiempo y esfuerzo en tus propios proyectos.
Utilizar bases de datos Sqlite almacenadas en S3 pueden ser una alternativa económica para gestionar la persistencia de nuestra aplicación en AWS. Este post es una prueba de concepto para validar este enfoque.
Has decidido implementar tu proyecto basado en Event Sourcing. ¿Ya elegiste qué librería vas a usar como base para implementar Event Sourcing? En este post vamos a analizar los casos de uso planteados en el conocido proyecto Buttercup-protects usando EventSauce.
¿Querés desarrollar una aplicación para interactuar con DynamoDB y no sabés por dónde empezar? En este post dejo “la vía rápida” para tener DynamoDB en localhost, sin riesgo de incurrir en costos sorpresa, creado a partir de la imagen oficial de AWS, y listo para la interacción.
¿Querés usar PHP con capacidades asíncronas y serverless? En este post voy a implementar una aplicación con uno de mis frameworks favoritos, Slim, en AWS/Lambda, usando Bref para ejecutar Swoole como runtime.
¿Quién no ha tenido que configurar cronjobs en algún servidor? En algunos casos, incluso arriesgando la exposición de credenciales en texto plano. Los cronjobs son una herramienta muy útil para programar la ejecución de tareas a intervalos de tiempo determinados. En este post, se analiza una alternativa a los cronjobs tradicionales mediante el uso de funciones lambda de AWS.
Uno de los riesgos más significativos que se presentan cuando usamos AWS es la posibilidad de que un día nos aparezca una factura con un importe fuera de nuestro alcance. Afortunadamente, AWS pone a nuestra disposición algunos mecanismos para mitigar ese riesgo. En este post voy a explicar esos métodos y cómo configurarlos para dormir un poco más tranquilos.
¿Te ha sucedido que tenés tu arduino operativo, conectado al WiFi, y necesitas cambiar las credenciales de conexión? En este post voy a dejar apuntado una manera de hacer que nuestro arduino nos presente un formulario web para poder cambiar las credenciales de conexión. En un post siguiente, añadiré el código necesario para almacenar en la EEPROM las últimas credenciales ingresadas, de modo que podamos recuperarlas cuando se reinicie nuestro dispositivo.
En este post veremos cómo hacer que nuestra aplicación en Drogon interactúe con una base de datos Sqlite 3.
Si tomaste contacto con Drogon y te estás preguntando cómo desplegar tu aplicación con contenedores, este post es para vos. Y para mi.
En el post anterior mostré mi primer aplicación con Drogon y dejé el puerto 8081 “hardcodeado”, lo cual no es buena práctica. En este post voy a parametrizar el puerto que escuchará nuestro servidor, dejando un valor por defecto si no se especifica cuando ejecutemos la aplicación.
¿Alguna vez quisiste desarrollar una api rest de alto rendimiento y bajo consumo de memoria y cpu? En este post exploramos Drogon, un framework para desarrollo de aplicaciones HTTP en C++.
¿Has tenido que volver a un sketch desarrollado para Arduino y tuviste que pasar un buen rato intentando entender qué fue lo que hiciste en su momento? En este post pretendo aplicar conceptos de la programación orientada a objetos a sketchs para Arduino y validar si el código resultante es más fácil de mantener. Spoiler alert: sí, el código resultante es más fácil de mantener y va a ahorrarte tiempo a la hora de mantener tu código.
¿Estás con ganas de mantener un blog o un proyecto similar y no tenés claro por dónde empezar? ¡Yo sí! En este post me dejo un roadmap para marcar el rumbo de este proyecto.