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>&nbsp;</o:p></p><p class=3DMsoNormal>Thanks for =
all the feedback!<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</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&#8217;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>&nbsp;</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>&nbsp;</o:p></p><p class=3DMsoNormal>I&#8217;ve =
also polished the implementation and added tests for all the concerns =
mentioned above.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</o:p></p></div></body></html>
------=_NextPart_000_0456_01DB7B48.A57AC5B0--