The Daily Commit · Edición de sección Portada PHP AI Dev EN DE FR ES

The Php Times

RFC Watch — Ecosistema

RFC de optimización de closures aceptada, pero la inferencia estática queda descartada


La comunidad PHP votó 24-0 a favor de la RFC de optimización de closures de Ilija Tovilo.

PHP INTERNALS ([RFC]/[VOTE]), 11 de agosto de 2026 seleccionado por Sönke

Sin embargo, un caso límite descubierto tarde obligó a descartar la inferencia de closures estáticas; solo se fusionará la caché de closures sin estado, beneficiando al código que ya usa static.

La RFC de optimización de closures de Ilija Tovilo fue aprobada en la votación de internals con 24 votos a favor, 0 en contra y 1 abstención. La votación terminó el 13-03-2026 a las 14:00 UTC; la implementación está en el pull request 19941 de php-src.

La RFC cubría dos optimizaciones: una caché para closures sin estado, que aporta la mayor parte de la mejora de rendimiento, y la inferencia de closures estáticas, que habría tratado automáticamente como static las closures que no usan $this. Ante la pregunta de Kamil Tekiela, Tovilo confirmó que los proyectos que ya marcan sus closures estáticas también se beneficiarían, y subrayó que el marcado explícito sigue siendo preferible. La inferencia estaba pensada para bases de código que omiten static para evitar ruido visual o desconocen las implicaciones de rendimiento.

Tras el cierre de la votación, Tovilo descubrió un caso límite: una closure puede pasar un callable como 'Foo::instanceCall' a array_map; no usa $this ni viola ninguna regla de inferencia, pero invoca un método de instancia. Como este caso no puede detectarse de forma fiable, decidió eliminar la inferencia y fusionar solo la caché de closures sin estado.

En la práctica: el código que anota todas sus closures relevantes como static obtiene el beneficio completo de rendimiento; el código sin anotar no gana nada. La RFC se actualizó con una sección de errata, y Tovilo pidió posibles objeciones a esta implementación parcial.

Leer la fuente original (en inglés) ↗

Valora este artículo: 0

Tribuna de lectores

Aún no hay aportaciones — abre el debate.

← Ecosistema — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Edición de pantalla · Información legal · Política de privacidad