La temporada de RFC de PHP 8.6 terminó esta semana después de una ronda de votación sobre 35 propuestas. Resultado final: 31 aceptadas, 4 rechazadas.
Cuatro propuestas no alcanzaron el umbral. La deprecación de list() terminó en empate 23–23 con una abstención—exactamente 50 por ciento—muy por debajo de los dos tercios requeridos. Reservar las palabras clave in, out e inout falló con 8 contra 21. El alias gettext _() sobrevivió con 10 contra 22. El filtro dechunk, controvertido durante toda la votación, terminó en 18 contra 15 con 12 abstenciones (54,5 por ciento) y permanece en el lenguaje.
Varias votaciones críticas se resolvieron desde posiciones inciertas. La reserva de let pasó con 24 contra 11 y 9 abstenciones (68,6 por ciento). La reserva de is pasó decisivamente con 29 contra 10, a pesar de las preocupaciones sobre la biblioteca de pruebas Hamcrest con 500 millones de instalaciones. La eliminación de la bandera de insensibilidad a mayúsculas en define() pasó 41 contra 0 sin votos en contra.
Las últimas tres votaciones de la temporada 8.6 se dividieron 2–1. El operador de asignación pipe de Caleb White (|>=) fue rechazado con 14 sí, 12 no, 7 abstenciones (53,8 por ciento), quedando corto de los dos tercios. Los valores predeterminados de propiedades readonly de Nick Sdot pasaron unánimemente con 24 contra 0 y 5 abstenciones. Las escrituras de propiedades const de objeto de Khaled Alam pasaron con 17 contra 2 y 6 abstenciones (89,5 por ciento).
Un cambio de implementación emergió tardíamente. Ilija Tovilo publicó una actualización del RFC de optimizaciones de clausuras (aprobado 24–0 en marzo). La propuesta original incluía dos características: un caché para clausuras sin estado e inferencia automática para marcar clausuras como estáticas. La porción de inferencia fue eliminada después de descubrir un caso límite: una clausura puede violar ninguna de las reglas del RFC y aún así hacer llamadas de instancia a través de cadenas invocables como "Foo::instanceCall" en array_map. Tovilo reconoció el descuido y decidió fusionar solo el caché de clausura sin estado, que proporciona la mayoría del beneficio de rendimiento. Los desarrolladores deben marcar las clausuras como estáticas manualmente para lograr la optimización completa.
El primer RFC dirigido a PHP 8.7 ya ha sido presentado. Weilin Du propuso IntlRelativeDateTimeFormatter—un envoltorio para el formato de tiempo relativo consciente de localización de ICU (por ejemplo, "en 3 días", "el domingo pasado"). La discusión se centró en si debería aceptar la nueva clase Duration; Du argumentó que Duration representa tiempo de cronómetro mientras que el formateador necesita unidades (90 minutos vs. 1,5 hora, meses, trimestres), haciéndolas incompatibles. El constructor recibió un parámetro NumberFormatter opcional el sábado.
El desarrollo de genéricos continúa fuera del proceso RFC. Carlos Granados compartió un pre-RFC basado en la rama reified experimental de Rob Landers, argumentando que merecía exploración más profunda. Rob sugirió unirse al Discord comunitario en phpc.chat en lugar de trabajar aisladamente. Alexander Lisachenko publicó de forma independiente una prueba de concepto en el espacio del usuario donde las clases genéricas especializadas comparten cuerpos de métodos compilados, reduciendo la sobrecarga de memoria por especialización.
El RFC de expresiones de marcas nativas de Liam Hammett (HTML de estilo JSX en PHP) recibió validación de T.J. L, el mantenedor de la extensión XHP, en su primer mensaje a internals. Confirmó que las herramientas de análisis estático no pueden analizar sintaxis personalizada—el punto de fricción principal con XHP—reforzando el caso para soporte nativo. Solicitó tres adiciones: paso de contexto sin enhebrado de atributos, soporte SVG en línea, y señaló que eliminar objetos por etiqueta elimina la validación en tiempo de ejecución que JSX evita principalmente a través de TypeScript.
Elementos menores: Juris Evertovskis señaló que las expresiones isset() entre corchetes siguen generando advertencias a pesar de que isset silencia todo lo demás. El RFC de sugerencias de error did-you-mean no se está apresurando—Jorg Sowa lo completará después de la congelación de características. Sepehr Mahmoudi se unió a la lista de internals con una propuesta array_search_range.
PHP 8.6 beta 1 se lanza esta semana, marcando la congelación suave. La temporada de RFC ha terminado.
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.