Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126365 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 qa.php.net (Postfix) with ESMTPS id 7602B1A00BC for <internals@lists.php.net>; Sun, 9 Feb 2025 21:16:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1739135631; bh=0YoqlvJbd71khILVMggE5EH7oQce1OfbaesEohBW/QQ=; h=From:To:References:In-Reply-To:Subject:Date:From; b=dA1RYLEp2+lGGOOX2+2mINv1DamjY4cCKk9/APMLfw5FdFJ8cWMhljG1JKIRiqUoM Rapxc3uON7zVImN2Npefd86tmqrh8FyFEokJ9q+9Hr48RbaOHvsCJRxqtHXi/uZj/i Rs9JY/b8WXT1O19rqwy7j86fwg6sSwLSbHyC3K2durWTxgjJ11jDp6k4YLwdh/t6PE 5hzKDTfTkOA0ik3eZLB4wPxTKqD5PCJvEe2EgLZlF5F9XkgcVjR51Ba8vUq44+za5n UPLrGyJItu4xlFgsg/KsaZvSc2oXJeEkjo/xBvXEwFp3vLyNL5P1XSYvIVNeuFymps KlW473ZEBF8+g== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CD5AF180084 for <internals@lists.php.net>; Sun, 9 Feb 2025 21:13:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_50, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_PDS_PRO_TLD autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: <juris@glaive.pro> Received: from crocodile.elm.relay.mailchannels.net (crocodile.elm.relay.mailchannels.net [23.83.212.45]) (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 <internals@lists.php.net>; Sun, 9 Feb 2025 21:13:49 +0000 (UTC) X-Sender-Id: yszpovajlk|x-authuser|juris@glaive.pro Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 4CEB91C0C63 for <internals@lists.php.net>; Sun, 9 Feb 2025 21:16:32 +0000 (UTC) Received: from server42.areait.lv (trex-2.trex.outbound.svc.cluster.local [100.97.28.83]) (Authenticated sender: yszpovajlk) by relay.mailchannels.net (Postfix) with ESMTPA id A96691C1B72 for <internals@lists.php.net>; Sun, 9 Feb 2025 21:16:31 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1739135792; a=rsa-sha256; cv=none; b=empqXfzv2QJQvZbPmQZxzvUHO1OQvRJIyPC6Ws9lawG+puUrsyONlggQJ2oeZvB5gyO5mm +HsS8+SKxSDfZEbpAb86kHxw1A3Cb0N0pyz0fXQudQ14EFXDQ2quK1EDo+zkR8Z9/IH1KC jNt7CdsxaxQXfp9OumNpnVEjsLlm/p2tmBB9/XIElFK3FutjASzqFSl0ncdX40LsNht3ua YtkQDUh4/0hSU92i2Gx28HrmAmoLkNPkUleAIi0ad+gdunGLV5XrwtiIO8S7xflF12ja/V dUnSU9CvnbZKTXc6x+eEpZMYugWPd9d+qe5P/WdIOkM/xz6zr7+JSop3x5j5mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1739135792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3W480J/L2U4Am9yiNHO2yrTRrqsUfYk8uTBTw+dkP44=; b=YBtcUg+rOBqNWmX4JQnTEh28TYekyObJzVSQzpVA8524DpLAZ+yydL5ArnRDoa31Ii9tjS 94Ae5PpEaj8EJOuZlmgrQdzygPU+6y2NV3n+oeQMHMVKg5JdiMBL93CYoucY0yy8aIlESK u/I+rDWUP5X7szUciliPArbNZK8SnS5s9kXVwd+QhEoZWDUm/Tqp40Sh1Z1v5EHiwH0AVY wb+rCRwxjxuhev3Dw/A7SsNbUNUgjqjQoeNqLus64oDLLo/ddh+sQgTwYBrGVw1ku0IL06 t4ilenEwtPbYIksUofGbzZG4HRLRku5DHzElKOFP/rg3HkY/cLZJd3ers3pk9g== ARC-Authentication-Results: i=1; rspamd-68c88d6cff-w5x7p; auth=pass smtp.auth=yszpovajlk smtp.mailfrom=juris@glaive.pro X-Sender-Id: yszpovajlk|x-authuser|juris@glaive.pro X-MC-Relay: Neutral X-MailChannels-SenderId: yszpovajlk|x-authuser|juris@glaive.pro X-MailChannels-Auth-Id: yszpovajlk X-Coil-Absorbed: 532712ba3a65d72d_1739135792200_509916134 X-MC-Loop-Signature: 1739135792200:2086433398 X-MC-Ingress-Time: 1739135792200 Received: from server42.areait.lv (server42.areait.lv [212.7.207.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.97.28.83 (trex/7.0.2); Sun, 09 Feb 2025 21:16:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=glaive.pro; s=default; h=Content-Type:MIME-Version:Message-ID:Date:Subject:In-Reply-To: References:To:From:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=5/Dc4xjeYlQyOyei8pYAo0YX+cUDaSLTeqQfnKdjfiM=; b=Nh8dAe0iSYh3lvfMQs3rzhjbEO PnOutW2XsMaCLi9hn40ObRLGHIRYCYMAf3n4TqCWY3JNEoqC3Au/Y2jWxuIVsgbdU2NHa2l210V0u 67xHtApEOJToToYoI08jOYT0P9VpXqJuX93myFAIKrbFaz0IBCxFVI5Th4nME+tbsNxAT7F9nvN+W NyYH6qu2RK3+twc5XLQKaWf+5yVbWCoxRdwVJCq55ZjvHN/R9l2Msnt5osAlq5cQtI+bNwXeZMh+a d8LMWeXIN2D43iWLpTVxdTZnBCDBNc3NdLvaZV7eSto+iLsL7ge8+qcWcSagz9lv6Xz64UPZW/AVA lfqWExjw==; Received: from [77.93.29.116] (port=60371 helo=LAPTOPHKIOPCGI) by server42.areait.lv with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from <juris@glaive.pro>) id 1thEfE-00FJSe-3B for internals@lists.php.net; Sun, 09 Feb 2025 23:16:29 +0200 To: "'php internals'" <internals@lists.php.net> References: <087a01db596a$e7525660$b5f70320$@glaive.pro> In-Reply-To: <087a01db596a$e7525660$b5f70320$@glaive.pro> Subject: RE: [PHP-DEV] [RFC] [Discussion] Optional interfaces Date: Sun, 9 Feb 2025 23:16:27 +0200 Message-ID: <045501db7b37$e1f15970$a5d40c50$@glaive.pro> Precedence: bulk list-help: <mailto:internals+help@lists.php.net list-unsubscribe: <mailto:internals+unsubscribe@lists.php.net> list-post: <mailto:internals@lists.php.net> List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0456_01DB7B48.A57AC5B0" X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQF7k6cGPGLx4SotLMUdlMWx2/alYLP/Q4CA Content-Language: lv X-AuthUser: juris@glaive.pro From: juris@glaive.pro ("Juris Evertovskis") This is a multipart message in MIME format. ------=_NextPart_000_0456_01DB7B48.A57AC5B0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hey, Thanks for all the feedback! The RFC is now expanded to explicitly address the concerns on how the optional interfaces interact with type checks, eval'd interfaces, opcache, autoloading, reflection and the Override attribute. Did Did I miss something? Please let me know if anything is still unclear or requires other improvement. https://wiki.php.net/rfc/optional-interfaces I've also polished the implementation and added tests for all the concerns mentioned above. https://github.com/php/php-src/pull/17288 However the implementation is not final as I was not able (yet) to solve how my implementation interacts with the Stringable interface. BR, Juris ------=_NextPart_000_0456_01DB7B48.A57AC5B0 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" = xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta = http-equiv=3DContent-Type content=3D"text/html; = charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 15 = (filtered medium)"><style><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Aptos;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; font-size:11.0pt; font-family:"Aptos",sans-serif; mso-ligatures:standardcontextual; mso-fareast-language:EN-US;} a:link, span.MsoHyperlink {mso-style-priority:99; color:#467886; text-decoration:underline;} span.EpastaStils19 {mso-style-type:personal-reply; font-family:"Aptos",sans-serif; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt; mso-ligatures:none;} @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--></head><body lang=3DLV = link=3D"#467886" vlink=3D"#96607D" style=3D'word-wrap:break-word'><div = class=3DWordSection1><p class=3DMsoNormal>Hey,<o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Thanks for = all the feedback!<o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>The RFC is = now expanded to explicitly address the concerns on how the optional = interfaces interact with type checks, eval’d interfaces, opcache, = autoloading, reflection and the Override attribute. Did Did I miss = something? Please let me know if anything is still unclear or requires = other improvement.<o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal><a = href=3D"https://wiki.php.net/rfc/optional-interfaces">https://wiki.php.ne= t/rfc/optional-interfaces</a><o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>I’ve = also polished the implementation and added tests for all the concerns = mentioned above.<o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal><a = href=3D"https://github.com/php/php-src/pull/17288">https://github.com/php= /php-src/pull/17288</a><o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>However the = implementation is not final as I was not able (yet) to solve how my = implementation interacts with the Stringable interface.<o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p><p = class=3DMsoNormal>BR,<o:p></o:p></p><p = class=3DMsoNormal>Juris<o:p></o:p></p><p = class=3DMsoNormal><o:p> </o:p></p></div></body></html> ------=_NextPart_000_0456_01DB7B48.A57AC5B0--