Re: [PHP-DEV] [RFC] [VOTE] Deprecations for PHP 8.6

[email protected] (Jakub Zelenka) Tue, 28 Jul 2026 12:16:17 +0200
Newsgroups php.internals
Message-ID <CAEKnhAHdQykAE=6U7rHfu_hteAN3U81rCdPN+Sg0kt3=BDXDng@mail.gmail.com>
--000000000000d2941a0657a92186
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi

On Tue 28. 7. 2026 at 10:59, Pierre Joye <[email protected]> wrote:

> Hey Matteo,
>
> On Tue, Jul 28, 2026 at 2:36=E2=80=AFPM Matteo Beccati <[email protected]> =
wrote:
> >
> > Hi Pierre,
> >
> > Il 28/07/2026 05:52, Pierre Joye ha scritto:
> > > For example, Symfony's native http client disable it by default as it
> > > fails/failed to work correctly with stream_select, according to the
> > > inline comment in
> > >
> https://github.com/symfony/symfony/blob/bb5999123482057647a0831010d14b6b3=
4fe443c/src/Symfony/Component/HttpClient/NativeHttpClient.php#L227
> >
> > FYI, Symfony has implemented a pure-PHP alternative in 8.2:
> >
> >
> https://github.com/symfony/symfony/commit/dca372b185100e82c556a741a96cbae=
1538162f2
> >
> > That's why your search pointed in the wrong direction. Pre-8.2 there ar=
e
> > a couple of:
> >
> > stream_filter_append(..., 'dechunk', \STREAM_FILTER_WRITE);
> >
> > in the code, if for whatever reason the Curl client is not in use.
> >
> >
> > > I would go with keeping that deprecation, and if anything went off th=
e
> > > radar, the major frameworks components will surely, or hopefully,
> > > provide the feedback required to revisit this deprecation before RC1.
> > Yet, feedback on how to improve/mitigate was provided and ignored durin=
g
> > the discussion period. Avoiding the deprecation on
> > stream_filter_append(), as suggested, would have been nice.
>
> Thanks :)
>
> I miss the 8.2 switch. That being said, deprecation is for php 9
> removal as a target ideally. Keeping stream_filter_append that brings
> little to support users to migrate to a final solution earlier. Half
> baked deprecation can lead to missing places where implementation
> should be updated


This is exactly a half baked deprecation because we need to keep it for
internal use anyway (it=E2=80=99s used http stream wrapper for chunked enco=
ding) so
this does not give us any code removal and we still need to maintain it. I
don=E2=80=99t understand why we need to rush it as there is no real reason =
for that.

Also we cannot just decide not to deprecate it in RC. We would need extra
approval from RM and then new RFC. We had exactly this sort of situation
last year with __sleep and it was huge pain to change. It also took lots of
our time that we could use for much more important stuff.


Kind regards,

Jakub

--000000000000d2941a0657a92186
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Hi</div><div><br><div class=3D"gmail_quote gmail_quote_co=
ntainer"><div dir=3D"ltr" class=3D"gmail_attr">On Tue 28. 7. 2026 at 10:59,=
 Pierre Joye &lt;<a href=3D"mailto:[email protected]">[email protected]=
om</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex" dir=3D"auto">Hey =
Matteo,<br>
<br>
On Tue, Jul 28, 2026 at 2:36=E2=80=AFPM Matteo Beccati &lt;<a href=3D"mailt=
o:[email protected]" target=3D"_blank">[email protected]</a>&gt; wrote:<br>
&gt;<br>
&gt; Hi Pierre,<br>
&gt;<br>
&gt; Il 28/07/2026 05:52, Pierre Joye ha scritto:<br>
&gt; &gt; For example, Symfony&#39;s native http client disable it by defau=
lt as it<br>
&gt; &gt; fails/failed to work correctly with stream_select, according to t=
he<br>
&gt; &gt; inline comment in<br>
&gt; &gt; <a href=3D"https://github.com/symfony/symfony/blob/bb599912348205=
7647a0831010d14b6b34fe443c/src/Symfony/Component/HttpClient/NativeHttpClien=
t.php#L227" rel=3D"noreferrer" target=3D"_blank">https://github.com/symfony=
/symfony/blob/bb5999123482057647a0831010d14b6b34fe443c/src/Symfony/Componen=
t/HttpClient/NativeHttpClient.php#L227</a><br>
&gt;<br>
&gt; FYI, Symfony has implemented a pure-PHP alternative in 8.2:<br>
&gt;<br>
&gt; <a href=3D"https://github.com/symfony/symfony/commit/dca372b185100e82c=
556a741a96cbae1538162f2" rel=3D"noreferrer" target=3D"_blank">https://githu=
b.com/symfony/symfony/commit/dca372b185100e82c556a741a96cbae1538162f2</a><b=
r>
&gt;<br>
&gt; That&#39;s why your search pointed in the wrong direction. Pre-8.2 the=
re are<br>
&gt; a couple of:<br>
&gt;<br>
&gt; stream_filter_append(..., &#39;dechunk&#39;, \STREAM_FILTER_WRITE);<br=
>
&gt;<br>
&gt; in the code, if for whatever reason the Curl client is not in use.<br>
&gt;<br>
&gt;<br>
&gt; &gt; I would go with keeping that deprecation, and if anything went of=
f the<br>
&gt; &gt; radar, the major frameworks components will surely, or hopefully,=
<br>
&gt; &gt; provide the feedback required to revisit this deprecation before =
RC1.<br>
&gt; Yet, feedback on how to improve/mitigate was provided and ignored duri=
ng<br>
&gt; the discussion period. Avoiding the deprecation on<br>
&gt; stream_filter_append(), as suggested, would have been nice.<br>
<br>
Thanks :)<br>
<br>
I miss the 8.2 switch. That being said, deprecation is for php 9<br>
removal as a target ideally. Keeping stream_filter_append that brings<br>
little to support users to migrate to a final solution earlier. Half<br>
baked deprecation can lead to missing places where implementation<br>
should be updated</blockquote><div dir=3D"auto"><br></div><div dir=3D"auto"=
>This is exactly a half baked deprecation because we need to keep it for in=
ternal use anyway (it=E2=80=99s used http stream wrapper for chunked encodi=
ng) so this does not give us any code removal and we still need to maintain=
 it. I don=E2=80=99t understand why we need to rush it as there is no real =
reason for that.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Also we=
 cannot just decide not to deprecate it in RC. We would need extra approval=
 from RM and then=C2=A0new RFC. We had exactly this sort of situation last =
year with __sleep and it was huge pain to change. It also took lots of our =
time that we could use for much more important stuff.</div><div dir=3D"auto=
"><br></div><div dir=3D"auto"><br></div><div dir=3D"auto">Kind regards,</di=
v><div dir=3D"auto"><br></div><div dir=3D"auto">Jakub</div></div></div>

--000000000000d2941a0657a92186--