Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130246 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 6EA5D1A00BC for ; Tue, 3 Mar 2026 18:02:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1772560969; bh=rhLs4mVPW0XY5Js+rLX8NYVZ8K82dTQItSuKEcouRbE=; h=Date:From:To:References:Subject:From; b=crjgxgCi3peY8bj9tcHVDrNPAb9rBkmYFU1jLFfBdfMmcNrgVqC24O5Q6igHybMPw a9nF9Aqt0kpPt2TdePkS0j7kOg/gtGp/KLsc5HYKfslajOkuGO6anuDbqSHzz+SOVO Hq0fEDHStaWGGCZFb1pE7OkhtcE1iQoFN9Q1THel6hBMNNZMRWKsVWBHmFdrkWZ75t 9emr04tiFlm9ZHw07jSTXxrW5oat6fNrVZ5NRdlWsX0gjKgefE/riC20Vo6HX1wOSL upDJK/isqRz4jVx+6JPxzZ8ed29Q6zQ+UGstJvclwP8iLZnU0sBE3SzABdgys0XRNn aPEobiAwp7Z+A== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 60888180681 for ; Tue, 3 Mar 2026 18:02:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_20,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from outbound.pv.icloud.com (p-west1-cluster2-host11-snip4-10.eps.apple.com [57.103.64.161]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 3 Mar 2026 18:02:47 +0000 (UTC) Received: from outbound.pv.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-west-1a-100-percent-13 (Postfix) with ESMTPS id 0F69A18014E7 for ; Tue, 3 Mar 2026 18:02:36 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1772560962; x=1775152962; bh=rhLs4mVPW0XY5Js+rLX8NYVZ8K82dTQItSuKEcouRbE=; h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:x-icloud-hme; b=O+v/tZR1hZg/CMJe64u1igb25kmRCu2YS45oehGwR9KXb+EhZ7ahmBiZioS/afvVQLrtqnyNdbiMc5Fmdw/S8fjpZ+MVt0TTo3kv9yD81yZ5bu5Oazd81CMYA9FmNwaBNQ6/ExsY/2J7IeLupeM/8KqTmm+GTAnvpH5m108jkKEzrFLZBW+/3eFg9Sihc8aU2GXDacsnEdQmCHarK/GwftjRR+keHQhDEd73vYWhx5cw1da8f9rJxNmTZgA8bcm7qspvQjYGFLvUPW5f2bepQPgSAurhgYxliQvoeWbSEUI3++HurLSMRcsvbFPrm4XtasthpKgsLW9awX+IMhMAtg== Received: from [192.168.1.170] (unknown [17.56.9.36]) by p00-icloudmta-asmtp-us-west-1a-100-percent-13 (Postfix) with ESMTPSA id 5FEA91801752 for ; Tue, 3 Mar 2026 18:02:28 +0000 (UTC) Date: Tue, 3 Mar 2026 19:02:16 +0100 To: PHP Internals List Message-ID: <7b32daa6-620e-4563-85b5-d6d9c0804115@Spark> References: Subject: [PHP-DEV] [RFC] Prevent instantiation and cloning of __PHP_Incomplete_Class X-Readdle-Message-ID: 7b32daa6-620e-4563-85b5-d6d9c0804115@Spark Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="69a72230_4c5984f0_4e0" X-Authority-Info-Out: v=2.4 cv=WesBqkhX c=1 sm=1 tr=0 ts=69a7223d cx=c_apl:c_pps:t_out a=azHRBMxVc17uSn+fyuI/eg==:117 a=azHRBMxVc17uSn+fyuI/eg==:17 a=Yq5XynenixoA:10 a=x7bEGLp0ZPQA:10 a=xKl34KcbpAAA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=67BIL_jfAAAA:8 a=NEAV23lmAAAA:8 a=zPvr706Qkc1WY6XZ4OQA:9 a=QEXdDO2ut3YA:10 a=SSmOFEACAAAA:8 a=ymqu_PO2xaBnZcLA92wA:9 a=fTgmb8a5lN3g1MnX:21 a=_W_S_7VecoQA:10 X-Proofpoint-ORIG-GUID: TYpJomue7gEuXwUgv5b_dmjrlwbG7Cek X-Proofpoint-GUID: TYpJomue7gEuXwUgv5b_dmjrlwbG7Cek X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAzMDE0NSBTYWx0ZWRfXy7mVrkFwQ4rC s/PdIDa1FFOxP91VcKotaDt8Fv1Ym6eYfOiS9ye23IsLwC+fN7VGXf5aLGev/or7hEq5DJbnit2 1cDHyyHw6lpXsgWk3QQ8rYyRYyOFDhdYobEn1iV/aPYLRIMpnDbpvry7F4z81FMa3tm3f2CHS+c coXe/9Nl5pTzaXmcu3VYw3Y2R4Z94CfOWWjv9RExZFhzKRKqP9UC7M61k0dLrCLdeIKcBe4IjtJ v/aTGG7mDx7bwvoPLl1SPtzaCeLKaCsvDcrWD4gwu6I8SBofW09Ehik+ya0/qAAzvnm299RA11a VDgEmEwe+GLZYJZFsmL/yNXIZ5XFtlo3ZMI5aEBBIqm6A9lUeqnh11ykEtFKIE= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-03_02,2026-03-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxlogscore=825 mlxscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2603030145 X-JNJ: AAAAAAABQthGj/OQJVq5bauh1ZVyuQCe0GEYQFbwHfT5HpO9VeMwTbY4Sxnv15WmMj3amHiiU3a5/NhG1Czi0/vuCYu+CyCpgt5Cg4fMIe4oV4K+L1qRtvC+nvEPiGsNtB84lHJHyip0ZQFoVOTUPxO5bLlD8wdaDZHztxDt9bymhB4hPOYq6aEPCRcrPmtFxuDRE/6oJP5/cUOm6HwzQp/KXbgtNlZLHPljTWoUgFXyT+4TN5PwB++6xTTRbSnCfxYBDf9oWE5g11ILOYbpxSSXZNKz21YvgpxtcTuRUJAsoTBqub8VLbNGyJiuymCJ/l+ss/Roy/flMu5wCxtGzGnbdd8KJHFon95MtwiosnamBwi5difRxgRIy1pFFTrzgVp4JEaEj1e9Ai/79n9whJ8m3Zz6sg0BcZoeGEa1/u+Bjf+Tqm083ozFMKnaJ+SLPlgwOqSBcTJg0D3shoHgfg/iSv+LTK6h11c4XSvDUeTMQ+MgdbtJEZLoHwS4aXQoJwmXF9tpepNP2Ls3XdW7zxnKV1bfxySiKpW3kexLbMJuLqAnR2H+svVEtfO2XZCN1SnnH6h4cciwtQwpuNlW9GDArNTPikfXlvvKE3Xfl1vlWI5P3Q== From: jordikroon@me.com (Jordi Kroon) --69a72230_4c5984f0_4e0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi internals, I would like to propose a new R=46C titled =E2=80=9CPrevent instantiation= and cloning of =5F=5FPHP=5FIncomplete=5FClass=E2=80=9D. R=46C:=C2=A0https://wiki.php.net/rfc/deprecate-incomplete-class-instantia= tion Implementation PR:=C2=A0https://github.com/php/php-src/pull/21325 This R=46C proposes to disallow direct instantiation and cloning of the i= nternal class =5F=5FPHP=5FIncomplete=5FClass. This change introduces a backward compatibility break. The expected impac= t is small, as =5F=5FPHP=5FIncomplete=5FClass is an internal class and no= t intended for direct use. Only code that explicitly instantiates or clon= es it would be affected. I have two immediate questions for discussion: 1. Should we target PHP 8.6 or PHP 9.x=3F Given the limited scope of the = break, I am currently leaning towards 8.6, though this is a (small) BC br= eak. If we lean towards 9.x, I propose to add deprecations in 8.6. 2. Should instantiation and cloning be voted on separately, or is a singl= e combined vote acceptable=3F =46eedback is very welcome. Regards, Jordi Kroon --69a72230_4c5984f0_4e0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hi internals,

I would like to propose a new R=46C titled =E2=80=9CPrevent instantiation= and cloning of =5F=5FPHP=5FIncomplete=5FClass=E2=80=9D.

R=46C:&=23160;https://wiki.php.net/rfc/d= eprecate-incomplete-class-instantiation
Implementation PR:&=23160;https://github.com/php/php-src/pull/21= 325

This R=46C proposes to disallow direct instantiation and cloning of the i= nternal class =5F=5FPHP=5FIncomplete=5FClass.

This change introduces a backward compatibility break. The expected impac= t is small, as =5F=5FPHP=5FIncomplete=5FClass is an internal class and no= t intended for direct use. Only code that explicitly instantiates or clon= es it would be affected.&=23160;

I have two immediate questions for discussion:

1. Should we target PHP 8.6 or PHP 9.x=3F Given the limited scope of the = break, I am currently leaning towards 8.6, though this is a (small) BC br= eak. If we lean towards 9.x, I propose to add deprecations in 8.6.


2. Should instantiation and cloning be voted on separately, or is a singl= e combined vote acceptable=3F&=23160;

=46eedback is very welcome.

Regards,

Jordi Kroon

--69a72230_4c5984f0_4e0--