El tema dominante en la lista internals de PHP esta semana no fue el código sino la comunicación. Los suscriptores debatieron cómo tratar los mensajes que parecen escritos o muy asistidos por grandes modelos de lenguaje. Siguieron unos 24 mensajes. Nadie se opuso a la traducción automática, ya que el inglés es segunda o tercera lengua para buena parte de la lista. Las objeciones apuntaban a delegar la autoría de los argumentos en una máquina y a la imposibilidad de detectar de forma fiable un texto LLM desde fuera. Todavía no hay norma escrita, pero un hilo del Discord comunitario phpc.chat trabaja en unas directrices.
Sepehr Mahmoudi abrió un nuevo RFC el sábado, poco después de retirar el anterior. La propuesta array_match() filtraría un array quedándose con los valores que contienen una subcadena, implementada en C para evitar el coste de un closure. La resistencia fue inmediata. Yuya Hamada apuntó a array_filter(), a funciones de usuario ya llamadas array_match con comportamientos distintos y al RFC rechazado str_icontains. Tim Düsterhus señaló que con la aplicación parcial de funciones en PHP 8.6 el mismo resultado cabe en una línea, y Christian Schneider mencionó preg_grep(). Ayesh Karunaratne, desde su experiencia perfilando Drupal, WordPress y otros códigos, sostuvo que la búsqueda de cadenas en arrays nunca ha sido un cuello de botella. Larry Garfield lo calificó de problema XY, y mickmackusa propuso hacer str_contains() polimórfico como str_replace(). Mahmoudi eliminó el flag insensible a mayúsculas, renombró la función a array_str_contain() y la reorientó a PHP 8.7, ya que 8.6 está congelada. De momento el RFC no tiene ningún defensor.
Nick Sdot propuso reestructurar el libro de internals de PHP dentro de php-src, convirtiendo páginas de reStructuredText a Markdown en un diff mecánico de 1.100 líneas. Ilija Tovilo, que montó el libro, objetó que la fuente es MyST y no ninguno de los dos formatos, y que la documentación se ha estancado por falta de tiempo dedicado, no por la sintaxis. Nick aclaró que una vieja carpeta de documentación que quiere fusionar ya está en Markdown, así que la conversión es inevitable en una dirección u otra. El pull request sigue abierto.
Robert Chapin retomó el RFC de enero Deprecate Fuzzy Type Casts de Alexandre Daubois y Nicolas Grekas, que aún apunta a 8.6 pese a la falta de discusión. Demostró que los ejemplos de migración no se sostienen: is_numeric() devuelve true para la cadena "1.5" y seguiría disparando la deprecación, is_int() e is_float() devuelven false para cualquier cadena numérica, y filter_var() no garantiza un entero. Su pregunta sobre si los desarrolladores deben sustituir un simple cast por 8 líneas de código quedó sin respuesta.
Mahmoudi planteó además una cuestión de proceso: ¿debería la plantilla de RFC recomendar un polyfill de usuario para las funciones nuevas? Un polyfill fija el comportamiento exacto, casos límite incluidos, sin leer el C, y da ventaja a proyectos como los polyfills de Symfony. Garfield consideró razonable una recomendación sin obligación y añadió que un polyfill sirve además como referencia de benchmark para comprobar si una implementación en C es realmente más rápida.
Gina P. Banyard corrigió el RFC ya aceptado de Steven Wilton sobre mejoras de SNMP: afirmar que llegará a todas las versiones soportadas contradice la política de versiones de parche, así que los cambios solo aterrizarán en 8.6. También pidió que las nuevas constantes enteras se conviertan en enums de PHP, lo que mejora la seguridad de tipos en el espacio de usuario y refleja los enums C que SNMP ya define. El plan es fusionarlo a tiempo para 8.6.0 beta 2.
Weilin Du, mantenedor de la extensión intl, enumeró trabajos que quiere delegar: convertir constantes en enums, poner namespaces a las clases para evitar colisiones, cerrar las brechas entre las API de PHP y las de ICU, y mejorar la gestión de errores, que calificó sin rodeos de mala y fuente de bugs estúpidos. Los enums y namespaces podrían ser un RFC para 8.7. Yuya Hamada añadió que los comentarios de usuarios de idiomas de derecha a izquierda son escasos en toda la industria, lo que afecta a la calidad de la internacionalización.
Apuntes breves: el RFC array_search_range() de la semana pasada se retiró oficialmente tras una crítica en 7 puntos de mickmackusa. La propuesta de Weilin Du sobre la sensibilidad a mayúsculas en los nombres de extensiones se convertirá en RFC por la objeción de un desarrollador del núcleo, con votación tras el corte de la rama 8.6 el 22 de septiembre. Y el recién llegado Zachary DuBois, a quien se indicó que bastaba un pull request, presentó como primera contribución bindings de sodium para los algoritmos postcuánticos de encapsulación de claves X-Wing y ML-KEM-768. Por segunda semana consecutiva, ningún RFC estaba en fase de votación.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.