Damian Jóźwiak a soumis un RFC pour une extension ext/csv intégrée au cœur de PHP. La page du RFC se trouve sur le wiki PHP, et l’implémentation est proposée dans la pull request GitHub 24199. Le projet reprend la base de l’extension girgias/csv de Gina Peter Banyard, publiée sous licence BSD-3-Clause. Il y ajoute la gestion des fichiers et des flux. La dépréciation des méthodes CSV de SplFileObject dans PHP 8.6 constitue l’une des motivations du projet.

La première API comprend six fonctions et une classe dans l’espace de noms Csv\. L’analyse et la sérialisation suivent par défaut RFC 4180. Le traitement ne dépend pas de la locale et n’emploie pas le mécanisme propriétaire d’échappement. Les délimiteurs, les caractères d’encadrement et les séquences de fin de ligne peuvent contenir plusieurs octets. L’API prévoit une analyse stricte ou permissive des collections. Les fichiers CSV peuvent être lus de façon paresseuse, avec une sortie en flux.

Les tests PHPT couvrent l’analyse, la sérialisation, les flux, la durée de vie des ressources et plusieurs cas limites. La CI passe actuellement sur les plateformes testées, y compris avec les configurations debug, ZTS et AddressSanitizer. Une API objet plus complète de type Reader/Writer, accompagnée d’interfaces orientées capacités, pourrait faire l’objet d’un débat ultérieur. Jóźwiak demande des retours sur l’API publique, le nom LazyLaxCollection et le choix d’une activation systématique ou optionnelle à la compilation.

Gina Peter Banyard n’a ni relu ni approuvé ce RFC. Jóźwiak indique que des LLM ont contribué à certaines parties de l’implémentation. Il précise avoir vérifié le code et assumer la responsabilité de la contribution. Le message ouvre une discussion et ne lance pas de vote.