Contructores más ordenados en PHP (Factory Method)

Seguro que ya has vivido esto: Creas una clase con un constructor que acepta unos parámetros. Te das cuenta que los datos pueden venir de un array y ves que es más cómodo pasar todo el array de golpe. Te das cuenta de que los datos también pueden venir de un objeto. El problema es … Leer más Contructores más ordenados en PHP (Factory Method)

Seamos estrictos en PHP (declare_strict=1 y otras zarandajas)

Todos sabemos que en PHP se pueden hacer auténticas barbaridades debido, entre otras cosas, a tu tipado débil. El tipado débil es una fuente de muchos problemas si no se es suficientemente disciplinado. Y en el mundo de desarrollo la disciplina no siempre se deja ver todo lo a menudo que debería. Por eso es … Leer más Seamos estrictos en PHP (declare_strict=1 y otras zarandajas)

¿Eres one-liner?

Pocas satisfacciones hay en la vida mayores que las de escribir un código muy complejo y difícil de entender en una única línea de código. Nos sentimos en la cúspide del olimpo de los dioses de la programación. Seguramente no verás ningún problema con este código: ¿Adivinas cuál es el resultado? Pues el resultado es … Leer más ¿Eres one-liner?

El principio Tell Don’t Ask en PHP

Tengo un ejemplo a medias tell-dont-ask.php El principio «Tell, Don’t Ask» en programación orientada a objetos consiste en evitar preguntar algo a la clase hija y luego decirle que haga algo en base a su respuesta. En lugar de preguntar y luego hacer lo que se recomienda es decir a la clase hija que haga … Leer más El principio Tell Don’t Ask en PHP

Detecta test lentos en PHPUnit

Los test en tus pruebas automatizadas tienen que ser rápidos. Muy rápidos. Si tus test tardan mucho al final dejarán de usarse. Para hacerte una idea, un test lento es aquel que supere los 500 milisegundos. PHPUnit Speedtrap Si trabajas con PHPUnit puedes detectar los test lentos usando PHPUnit Speedtrap. Es una herramienta que identificará … Leer más Detecta test lentos en PHPUnit

La clase Money para trabajar con monedas en PHP

Hace unos días escribí un artículo sobre cómo trabajar con precios en PHP. En él mencionaba un paquete muy interesante llamado Money\Money que nos soluciona los problemas de redondeo habituales al trabajar con precios. Instalar el paquete Money/Money Lo mejor, como siempre, instalar el paquete con Composer y añadirlo a nuestro proyecto: $ composer require … Leer más La clase Money para trabajar con monedas en PHP

¿Sabes que puedes resolver tus dudas en PHP?

Hace unos días puse en marcha un servicio de resolución de dudas que te puede venir muy bien si te has atascado en algún proyecto, si no sabes la forma más correcta de resolver un problema o si tienes dudas que te atormentan. Dudas relacionadas con PHP y JavaScript, para las dudas existenciales mejor la … Leer más ¿Sabes que puedes resolver tus dudas en PHP?

No dependas de paquetes adaptados a Laravel (u otro framework PHP)

Cuando encuentras una dependencia que quiere añadir a tu proyecto ¿a que es muy cómodo encontrar que alguien ya la adaptado a tu framework favorito? Esto te ahorra algo de trabajo y es una ventaja. ¡Pero cuidado! Esto viene con un coste que puede ser alto. A mí me ha ocurrido en más de una … Leer más No dependas de paquetes adaptados a Laravel (u otro framework PHP)

Usar Composer sin un framework PHP

Seguramente has usado muchas veces Composer dentro de algún framework como Symfony o Laravel, pero… ¿lo has usado alguna vez sin framework? Si ese es tu caso este sencillo artículo te vendrá muy bien. Añade Composer a tu proyecto Vale, esto es fácil, basta con lanzar este comando en la consola: y sigue las instrucciones … Leer más Usar Composer sin un framework PHP

¿Que es un «timing attack» en PHP?

Esto del timing attack puede hacer que tu cabeza explote cuando veas dónde puede llegar a haber agujeros de seguridad en tu aplicación web. El mecanismo de ataque se basa en medir el tiempo que tarda una aplicación en procesar una información. A continuación un ejemplo que es una explicación muy por encima y simplificada … Leer más ¿Que es un «timing attack» en PHP?