PHP digest — 11 October 2026
A Sunday with no releases and no RFC status changes. Two items are list discussion on proposals that are still Under discussion; the third is merged Symfony 8.2 development work, not a release.
ext/csv: RFC version 1.2, and the author asks which direction to take
The CSV extension RFC (proposed for the release after PHP 8.6) is now
version 1.2. It rejects ambiguous overlapping delimiter/enclosure/EOL combinations with ValueError
(previously an open issue), names two gaps left by the PHP 8.6 SplFileObject CSV deprecation, and states
that the existing CSV functions are neither changed nor deprecated. In a
reply to the reviewer who argued for improving the built-in
functions, the author agreed that the RFC's "cannot be fixed without breaking compatibility" claim is too
broad. They offered three directions: improve ext/standard, continue with ext/csv plus stream entry points, or
an object-oriented Csv\ API. They asked whether a directional vote would help if discussion does not settle
it. No vote is scheduled and PR #24199 is open. See
the RFC page.
Polling API additions: 15-point review
Tim Düsterhus reviewed the
Polling API Additions RFC, which extends PHP 8.6's Io\Poll
with weak, socket, timer, signal, process and notification handles. They supported splitting it into separate
votes, asked whether WeakReference could replace dedicated weak handle classes, questioned the TimerHandle
name and namespace, and suggested a proc_*() function to create process handles. The RFC is version 1.0;
no author reply was collected. See the RFC page.
Symfony 8.2 branch: attribute-defined workflows, #[Lock], RecorderHttpClient
A Week of Symfony #1032 lists newly
merged 8.2-branch changes: workflows defined with PHP attributes, a #[Lock] attribute to reject or delay
concurrent requests, a RecorderHttpClient to record and replay HTTP exchanges, and an ExpressionLanguage
ConstantFunctionProvider that deprecates the unrestricted constant() and enum() functions. These are
merged development changes; Symfony 8.2 is not released. The 8.2 posts summarised in the same issue were
covered in earlier digests.
Coverage
All 43 sources were collected successfully at 04:01 UTC, and the 24 due feed and index sources again at
10:01 and 16:01 UTC (the daily package and adoption sources were not due after 04:01).
health --fail-stale reports no failed or stale source. The official RFC index still has 950 entries with no
status changes; end_pear_endorsement and reldateformatter are voting. A freek.dev post on Laravel Context is
an explainer, not news, and has no item. Package and WordPress version-share observations were not compared,
because no baseline comparison has been defined.