Artículos

  • PHP 0

    GD e Imagick en PHP: redimensionar, recortar y procesar imágenes

    GD e Imagick son las dos opciones para procesar imágenes en PHP. GD viene integrada y cubre la mayoría de los casos: thumbnails con proporciones, recorte de avatares y marcas de agua. Imagick da mejor calidad de reescalado. Ejemplos reales y el error más habitual con imagedestroy.

  • PHP 0

    PHP 8.4: property hooks, asymmetric visibility y nuevas funciones de array

    PHP 8.4 llega con property hooks para declarar getters y setters directamente en las propiedades, asymmetric visibility para controlar por separado quién lee y quién escribe, cuatro nuevas funciones de array y soporte nativo para objetos perezosos. Todo lo que la comunidad pedía desde hace años.

  • PHP 0

    strict_types en PHP: tipado estricto, type juggling y declare(strict_types=1)

    PHP convierte tipos en silencio sin avisarte: "42" pasa a 42, "1.5" a 1, y nadie dice nada. Con declare(strict_types=1) eso cambia y cualquier discordancia lanza un TypeError en el acto. Cuatro ejemplos reales con antes y después.

  • PHP 0

    serialize() y unserialize() en PHP: persistir objetos y los métodos mágicos __sleep y __wakeup

    Aprende a usar serialize() y unserialize() en PHP para guardar el estado de objetos en sesión, caché o base de datos. Ejemplos con __sleep(), __wakeup(), __serialize() y __unserialize() de PHP 7.4, más cómo evitar la vulnerabilidad de PHP Object Injection.

  • PHP 0

    Clonación de objetos en PHP: clone, __clone y la diferencia entre copia superficial y profunda

    Aprende a clonar objetos en PHP con clone y __clone(). Entiende la diferencia entre copia superficial y profunda, evita el bug típico con propiedades anidadas y domina la comparación == vs === entre instancias.

  • PHP 0

    Clases anónimas en PHP 7+: new class{} y sus casos de uso prácticos

    Las clases anónimas de PHP 7 permiten crear y usar una clase en el mismo punto del código, sin nombre ni fichero aparte. Útiles para implementar interfaces puntualmente, crear test doubles rápidos y definir callbacks con estado. Cuatro ejemplos reales y el error típico con closures.

  • PHP 0

    First-class callables en PHP 8.1: sintaxis ..., Closure::fromCallable y callbacks modernos

    PHP 8.1 introduce la sintaxis strlen(...) para obtener una Closure de cualquier función o método sin strings ni arrays. Más segura ante renombrado, compatible con análisis estático y más limpia que Closure::fromCallable(). Con ejemplos reales de array_map, usort y composición de funciones.

  • PHP 0

    WeakMap y WeakReference en PHP 8: referencias débiles y evitar memory leaks

    WeakReference y WeakMap permiten apuntar a objetos en PHP sin impedir que el recolector de basura los elimine. Aprende a usarlas para cachés, listeners y estructuras de seguimiento sin provocar memory leaks en aplicaciones de larga duración.

  • PHP 0

    Atributos en PHP 8: #[Attribute], crear tus propios atributos y leerlos con Reflection

    Aprende a usar los atributos de PHP 8: sintaxis #[NombreAtributo], cómo definir los tuyos marcando una clase con #[Attribute], restringir targets con IS_REPEATABLE, y leerlos en runtime con la Reflection API mediante getAttributes() y newInstance(). Con ejemplos reales de rutas y validaciones.

  • PHP 0

    Reflection API en PHP: ReflectionClass, ReflectionMethod y usos prácticos

    Aprende a usar la Reflection API de PHP para inspeccionar y manipular clases en tiempo de ejecución. ReflectionClass, ReflectionMethod y ReflectionProperty con ejemplos reales: contenedores DI, tests con propiedades privadas y serializers automáticos.