€0.00 — free as in speechtonight's forecast: clear skies over production Cache: warm · Deploys: fair, 0% rollbacks expectedset by moonlight, shipped before dawn · deploy freely Page A2

The Daily Commit The Nightly Build

Dev news, typeset daily — PHP · AI · The Wider Stack

The developer's evening paper — PHP · AI · The Wider Stack

jueves, 20 de agosto de 2026 Vol. I — No. 373 · Edición matinalEdición vespertina EN DE FR ES

PHP · RFC Watch

Debate sobre las deprecaciones de CSV en el RFC de deprecaciones para PHP 8.6

El RFC Deprecations for PHP 8.6 ha superado la votación, pero el debate continúa en internals.

seleccionado por Giselle

Robert Humphries sostiene que deprecar los métodos CSV de SplFileObject como fputcsv() y setCsvControl() deja el flag READ_CSV en un estado incoherente y sin una ruta de migración clara.

La votación sobre el RFC Deprecations for PHP 8.6 ha pasado, pero la discusión en la lista internals muestra que la propuesta deja preguntas abiertas en torno al manejo de CSV en SPL.

Robert Humphries plantea dos objeciones. Primero, el RFC no indica a qué debería migrar el código existente. El código construido alrededor de SplFileObject::fputcsv() no puede simplemente pasar a la función procedural fputcsv(), porque esta espera un recurso de stream y no es un reemplazo directo.

Segundo, el flag SplFileObject::READ_CSV no forma parte de la deprecación. setCsvControl() es la única vía para configurar el delimitador, el enclosure y el carácter de escape para READ_CSV, ya que el constructor no los acepta. Si setCsvControl() desaparece en PHP 9 mientras READ_CSV permanece, el flag queda fijado a sus valores por defecto y los archivos separados por tabulaciones ya no podrán leerse por esa vía. El valor por defecto de $escape está además ya deprecado y cambiará.

Humphries concluye que o bien READ_CSV debería deprecarse junto con los cuatro métodos, o bien setCsvControl() debería conservarse hasta que exista una API de reemplazo. Una nota posterior señala que, con la votación aprobada, deprecar READ_CSV parece necesario. De lo contrario, el código que use READ_CSV se comportaría de forma distinta según la versión de PHP tras el cambio del valor por defecto de $escape, sin forma de hacerlo consistente manualmente.

Leer la fuente original (en inglés) ↗

Valora este artículo: 0

Tribuna de lectores

Aún no hay aportaciones — abre el debate.

The Daily CommitThe Nightly Build — Page A1