Un repaso a fondo de las novedades que tendremos disponibles a partir del 26 de noviembre para trabajar con PHP.

Photo by Stefan Cosma on Unsplash

Hace unos meses escribí un artículo listando las principales novedades que incorporará la versión 8 de PHP que tendremos disponible a partir del día 26 de noviembre.

Como era un artículo donde el objetivo era poneros al día de forma rápida decidí no sobrecargarlo con ejemplos por lo que apenas profundicé en las nuevas características.

Ahora que el lanzamiento está a la vuelta de la esquina me he animado a escribir un artículo algo más largo donde os pongo ejemplos concretos de cómo usar cada una de las novedades que incorpora PHP8.

Además, en este artículo encontrarás un par de…


Ahora que ya sabemos cómo trabajar con Value Objects, veamos el otro concepto fundamental de nuestro dominio: las entidades

Photo by Markus Winkler on Unsplash

En el capítulo anterior repasé el patrón Value Object para modelar los elementos de nuestro dominio que representan valores, como un precio o un rango de fechas.

Sin embargo, otros elementos de nuestro dominio pueden tener un carácter único, como una persona, una orden de compra o una factura, es decir, representan entidades únicas de nuestra aplicación.

Simplificando mucho esta idea, una entidad vendría a ser una tabla de nuestra base de datos (si estamos empleando un sistema relacional). Yo prefiero…


Los Value Objects nos permiten encapsular elementos de nuestro dominio que representan un valor por sí mismos, como un email, una fecha o una puntuación.

Photo by Sean Stratton on Unsplash

Una de las ideas que más me han gustado del enfoque DDD son los “Value Objects”, los cuales nos permiten encapsular los elementos de nuestra aplicación que representan un valor por sí mismos.

La idea en la que se basan es realmente sencilla y de hecho cobra gran sentido si estamos trabajando con un lenguaje que admita Programación Orientada a Objetos. Presta atención.

Imagina una clase User con el siguiente constructor:

public function __constructor(string $email, string $fullname) 
{
...
}

Sí, está claro que $email representa una dirección de correcto electrónico, pero, ¿quién nos asegura que es un email válido…


DDD, Arquiectura Hexagonal, Event Sourcing, Lenguaje ubicuo…

Photo by Maarten Deckers on Unsplash

Uno de los propósitos del año 2020 fue profundizar en el enfoque DDD y arquitectura hexagonal empleando mi framework favorito (Symfony) como punto de partida. Algunas de las ideas que extraje ya las he mencionado en el curso de Symfony que tenéis disponible en mi canal de Youtube.

Hoy comienzo una serie de artículos en los que daré forma a todas las notas que tomé durante el año pasado con el objetivo de acercaros un poco más las ideas fundamentales en las que se basa DDD.

¿Me acompañas?

¿Qué es DDD?

La idea del enfoque DDD (siglas de Domain — Driven — Design)…


Guía para integrar los hooks básicos de React con Typescript

Photo by Stephen Cantrel on Unsplash

Hace unos meses comenté en Linkedin que estaba comenzando a trabajar con Typescript y React de forma habitual y que uno de mis objetivos para este 2021 era sacarle el máximo jugo posible a este lenguaje.

Así que hoy empiezo una serie de artículos donde iré recogiendo trucos, consejos y buenas prácticas que he ido recopilando durante estos meses de aprendizaje. Creo que estos artículos pueden resultar muy interesantes a todos los que os estéis planteando probar la combinación Typescript + React.

En este primer artículo quiero repasar cómo trabajar con los principales hooks de React y Typescript. …


Descubre cómo migrar de ids autoincrementales generados por la base de datos a uuids

Photo by Kenrick Mills on Unsplash

Puede que en algún momento quieras comenzar a usar uuids como identificadores de tus entidades. Esto permite centralizar en la aplicación la generación de los identificadores en vez de delegarlo a un agente externo, ganando un mayor control sobre ellos.

Si estás empezando una aplicación desde cero esto es trivial pero… ¿qué sucede si ya estabas usando identificadores autoincrementales en base de datos? Aquí la cosa se complica, porque es necesario cambiar no sólo las tablas de las entidades, sino también todas las claves foreáneas y esto ya no es tan sencillo.

Para ayudarte en esta tarea he escrito el…


A review of some of the main Javascript features that React JS uses regularly

Photo by Jamie Street on Unsplash

Whenever they ask me why I like React so much, one of the reasons I give is that when we work with this library along the way we reinforce and expand our knowledge of Javascript: there are no special functions (as for example in Angular) to perform tasks such as paint a list of items or call an API but everything is native. This means that if ReactJS someday loses its position as the most popular library for frontend development, our work will not have been wasted, as we will have learned many Javascript concepts along the way.

In this…


Aprende a configurar estos analizadores de código para asegurar un mismo estilo en los archivos y realizar comprobaciones estáticas sobre tu código

Photo by Marten Newhall on Unsplash

Hoy retomo los artículos sobre Symfony con la intención de hablaros sobre dos paquetes que os ayudarán mucho a mejorar muchísimo vuestro código y ahorraros algún que otro disgusto:

  • EasyCodingStandard es una librería que nos va a permitir comprobar el estilo de nuestro código para asegurar que cumple con los estándares y automáticamente corregir aquellos errores que detecte. Es compatible tanto con PHP_CodeSniffer como con PHP-CS-Fixer, por lo que podéis trabajar indistintamente con cualquiera
  • PHPStan (PHP Static Analyzer) es un analizador estático de código, lo cual nos permite comprobar que la aplicación guarda un tipado coherente, la existencia de los…


Cómo realizar llamadas a API’s externas empleando fetch y los hooks de React

Photo by Jez Timms on Unsplash

Tras casi dos años disfrutando de los “hooks” de React me gustaría compartir con todos vosotros la forma en que suelo hacer llamadas a API’s externas en proyectos sencillos donde no requiero de la funcionalidad extra que me proporciona la siempre fantástica librería React Query.

La idea es combinar los hooks useState y useCallback para crear un custom hook llamado useFetch que nos permita realizar llamadas asíncronas cuando lo necesitemos a la vez que recibimos el estado en que se encuentra la llamada. Este estado puede ser uno de los 3 siguientes: “loading”, “failed” y “succeeded”. …


Un repaso a algunas de las principales características de Javascript que React JS usa habitualmente

Photo by Jamie Street on Unsplash

Siempre que me preguntan por qué me gusta tanto React uno de los motivos que doy es que cuando trabajamos con esta librería por el camino reforzamos y ampliamos nuestros conocimientos de Javascript: no existen funciones especiales (como por ejemplo sucede en Angular) para realizar tareas como pintar una lista de elementos o llamar a una API sino que todo es nativo. Esto quiere decir que si algún día ReactJS pierde su puesto como la librería más popular para desarrollar frontend, nuestro trabajo no habrá caído en balde pues habremos aprendido por el camino numerosos conceptos de Javascript.

En este…

Gerardo Fernández

Entre paseo y paseo con Simba desarrollo en Symfony y React

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store