Optional PHP 8.6 runtime APIs: stream error reasons in CacheFileWriter, Io\Poll for the warmup worker pool

Abierto
#799 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
php
Área
backend

Línea de trabajo

Start with CacheFileWriter::write(), where mkdir, file_put_contents and rename are silenced with @, and with Warmup\WorkerPool, where @stream_select(..., 1) is called. Each change must sit behind a function_exists() or class_exists() guard so PHP 8.4 behaviour stays the same. Done means the 8.6 branch adds the error reason to the exception message, or the Io\Poll path exists. The second item may be closed if profiling shows the select loop doesn't matter, so confirm with a maintainer first.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Enhancement PHP-8.6

Low-priority improvements built on new 8.6 runtime APIs. Each needs a function_exists() / class_exists() check while the minimum version is 8.4.

  1. Stream errors in CacheFileWriter (Stream Error Handling Improvements).
    • CacheFileWriter::write() hides the errors of mkdir, file_put_contents and rename with @, so the exception doesn't say why a cache write failed (disk full, permissions, cross-device rename).
    • On 8.6, stream_last_errors() / stream_clear_errors() can add the cause to the existing exception message without changing the @ behaviour.
  2. Io\Poll in Warmup\WorkerPool (Polling API).
    • WorkerPool waits on worker sockets with @stream_select(..., 1), a one-second timeout.
    • The new poll API could replace it on 8.6, with the right backend chosen per OS.
    • This only helps if the select loop shows up in warmup profiles; otherwise close this item.

Part of #789.

Lenguaje dominante
PHP
Estrellas
1.7k
Forks
166
Merge medio
1 d 1 h
PR fusionados (30 d)
43

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de goaop/framework

Todos los issues de goaop/framework

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.