Artículos
-
PHP
Closures y arrow functions en PHP: funciones de primera clase, bind y bindTo
Aprende a usar closures y arrow functions en PHP: captura de variables con use por valor y referencia, closures como callbacks en array_map y usort, arrow functions de PHP 7.4 con captura automática del scope, y Closure::bind para vincular closures a objetos y acceder a propiedades privadas.
-
PHP
Generadores en PHP: yield, lazy evaluation y cómo ahorrar memoria
Aprende a usar generadores en PHP con yield para procesar ficheros grandes y consultas de base de datos sin agotar la memoria. Cubre yield from, send(), getReturn() y secuencias infinitas, con comparativa real de uso de memoria.
-
PHP
PDO en PHP y prepared statements: prevenir SQL injection de forma correcta
Aprende a usar PDO en PHP para acceder a bases de datos con seguridad. Guía práctica con prepared statements, parámetros posicionales y nombrados, modos de fetch ASSOC/OBJ/CLASS, transacciones con beginTransaction y rollBack, y por qué la concatenación de SQL es un error grave.
-
PHP
filter_var() y filter_input() en PHP: validar y sanitizar datos de entrada
Aprende a usar filter_var() y filter_input() en PHP para validar emails, URLs, enteros con rango e IPs, y a sanitizar datos de formularios. Con ejemplos reales de formularios, el antipatrón de FILTER_SANITIZE_STRING y cuándo estas funciones no bastan.
-
PHP
password_hash() y password_verify() en PHP: almacenar contraseñas de forma segura
Aprende a almacenar contraseñas en PHP de forma segura con password_hash() y password_verify(). Diferencias entre PASSWORD_BCRYPT y PASSWORD_ARGON2ID, cómo migrar hashes obsoletos con password_needs_rehash() y generar tokens seguros con random_bytes(). Con ejemplos de registro, login y recupera...
-
PHP
set_error_handler() y set_exception_handler() en PHP: capturar errores globalmente
Aprende a usar set_error_handler() y set_exception_handler() en PHP para centralizar el manejo de errores en tus aplicaciones. Convierte warnings en excepciones con ErrorException y captura errores fatales con register_shutdown_function().
-
PHP
Excepciones personalizadas en PHP: crear jerarquías de errores propias
Aprende a crear excepciones personalizadas en PHP extendiendo Exception y RuntimeException. Diseña jerarquías con AppException como base y subclases específicas (ValidationException, DatabaseException, NotFoundException) para capturar errores de forma precisa en tus aplicaciones.
-
PHP
Excepciones en PHP: throw, try/catch/finally y la jerarquía de Exception
Aprende a lanzar y capturar excepciones en PHP con throw, try, catch y finally. Entiende la jerarquía Throwable, cuándo capturar Error frente a Exception, cómo encadenar excepciones con previous y por qué no debes capturar Throwable genérico en producción.
-
PHP
El operador nullsafe ?-> en PHP 8 y otras mejoras: str_contains, throw como expresión
PHP 8.0 introdujo el operador nullsafe para encadenar llamadas a métodos sobre objetos que pueden ser null sin comprobar manualmente cada eslabón. También llegaron str_contains(), str_starts_with() y throw como expresión. Cuatro ejemplos reales de cada mejora.
-
PHP
Named arguments y union types en PHP 8: código más expresivo y tipado
Named arguments y union types son dos de las mejoras más prácticas de PHP 8. Con los primeros puedes llamar a funciones por el nombre del parámetro en vez de su posición, y con los segundos declaras que un valor puede ser de varios tipos con tipado real verificado en ejecución.









