Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126562 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 C6BB91A00BC for ; Tue, 4 Mar 2025 20:59:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1741121840; bh=C3uSlOIHR3Qim78+HuzPbId4Vjwjk1dGLDWx14EIalI=; h=From:To:References:In-Reply-To:Subject:Date:From; b=HzfCTgpgh9V0vhWY7vRXcZR57/1kwNRaezGzajdEW2X5sUvp9UhXwlKRtP6fw+Cjv HS9zS2dQF6RgXVNpaMD4C1O9Eq+KEoA2YF+qQIyPGNTs0VqEOE0hKCGlIuwej7tqs2 ha6U4COvV1bh3yscEplq17zRlNVoVrL4jAvf/yvqJyRATpUgcq0PJwkR0QNaBHpNwj iLAotjMsj0XHwHcwFjQB1+EWDZ9yWd+IGO4ftwBHfDrEaC04JSeBVMM/f86BZKy5Bl 6f5z51rpIol4zGH8fBAKR3RAEZTaXYBhHahZ8NItzwW2G0JgkfcXbMKaxMMNE492i3 NkXrV2zE37vTA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id E62661801D5 for ; Tue, 4 Mar 2025 20:57:18 +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,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: Received: from iguana.tulip.relay.mailchannels.net (iguana.tulip.relay.mailchannels.net [23.83.218.253]) (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, 4 Mar 2025 20:57:17 +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 20DFE1A317D for ; Tue, 4 Mar 2025 20:59:53 +0000 (UTC) Received: from server42.areait.lv (100-106-216-81.trex-nlb.outbound.svc.cluster.local [100.106.216.81]) (Authenticated sender: yszpovajlk) by relay.mailchannels.net (Postfix) with ESMTPA id 200F11A36A7 for ; Tue, 4 Mar 2025 20:59:51 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1741121992; a=rsa-sha256; cv=none; b=acPb56Vpesn1LF4kSBVnv/Q0O29zfRvGLn73Vi/qstdSN0Zrgq5SDdnkZg1eO6ybJh2YG3 MVfNaMNMVWAvcMxQvy3moPlP/lGT6TnYkdfZ7082BvDh739Gxv1r6rTBdqatbJyzxfAjWc xF2b+UNLPxxt5UNl39G7sWtm5rlfNdez4TMD55AD7qyDQPGbpHgYZehSiLgjKzGoCVi2Im nwB3bD0XLHhngMlZFyYvQx/yWRreU45kZLMtjHLGzoubiqaTJLkFKh6fTcwbibBkOS87Uu wPxgVP/Psx+0DFZFRH4Rb0tATgDCMezciy6FISLu51wkyz2U2w2seA22t6Fh/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1741121992; 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=eB/oRKGY77iANquSYJHhOUtiGwYUCSZu8ix58POdR70=; b=+IhhVuEUHgnjdKF5DRKNiDfnY08P9e48W2g+Ka4JiUdyJu/QJ1g2xm/pfPbuI5xpD88pQq DnYMA0lpVj6YGx3PtLjIldjmWDsvasaawKWNvMklIVVX7Y7gHn4Vti5xPxAWyHvHn0mZnL G5NrT0sUd6Atum23xAppxz1kh5jlNByXIr+teeGHwwzdFLAdUdNNuU4u7WrwA4eXIVpJSq vw3MMWng1IsbRv+PBy6lajCzO3Ez9G082m064wr3fpepd6+hEi7utHXatApU2zjZOQYt+P 9OhNknHB2pSN34PK0LH+A6JIkRHFvHlQ0XYc5p9+IQ1djCNTB/puAhjehycOAA== ARC-Authentication-Results: i=1; rspamd-d464f9ccc-z7qxg; 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-Gusty-Towering: 3a87fe6536243a3a_1741121992710_1960625557 X-MC-Loop-Signature: 1741121992710:4191475422 X-MC-Ingress-Time: 1741121992709 Received: from server42.areait.lv (server42.areait.lv [212.7.207.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384) by 100.106.216.81 (trex/7.0.2); Tue, 04 Mar 2025 20:59:52 +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=oZ08bffZnH16Zdf4X/XukqkBG0qkmnJ39Ybxlx/1rqY=; b=EyZKEXUFI8oJo8GHR/3AsiBPiC DrkVA67PuhCeUsR3Hk3l4ODVzyiuMfmjtmQj4M15o/0G0t/74KQBW3Tbx4aUizXb65AnF8qMnjpjG FAGOS3teTy+pOmdqgje6dx4xIc0ZsJWuD5vuLgSzoXszas2qxH8RJkcxo9FPfYz6L+/EWPou/7pps OpEJW9ozk3l1enw1mEkefIb3J8/RVOReQ7MetZDZnc7aJJckqJ1LjcsBEkN2GNJfY4cibuMfz12Vs Zz8F7Uzv7tNB4vWZ3cO7gZ8MuDQ7BwBjSLTCTgWL6QdqFhAtkhF7YH260+RJSiMaURR7nFfAAEcNx iGDfutDw==; Received: from [77.93.29.116] (port=62761 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 ) id 1tpZMj-009KgC-1E for internals@lists.php.net; Tue, 04 Mar 2025 22:59:50 +0200 To: "'php internals'" References: <087a01db596a$e7525660$b5f70320$@glaive.pro> <045501db7b37$e1f15970$a5d40c50$@glaive.pro> In-Reply-To: <045501db7b37$e1f15970$a5d40c50$@glaive.pro> Subject: RE: [PHP-DEV] [RFC] [Discussion] Optional interfaces Date: Tue, 4 Mar 2025 22:59:48 +0200 Message-ID: <038601db8d48$5dfb65c0$19f23140$@glaive.pro> Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0387_01DB8D59.2184AAF0" X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQF7k6cGPGLx4SotLMUdlMWx2/alYAJeABjStBBubIA= Content-Language: lv X-AuthUser: juris@glaive.pro From: juris@glaive.pro ("Juris Evertovskis") This is a multipart message in MIME format. ------=_NextPart_000_0387_01DB8D59.2184AAF0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi all, It's almost awkward to bother the list with this humble RFC amidst so many exciting proposals :) With help from Ilija and Niels the implementation is now working and tested, so the RFC seems getting closer to the voting phase. Ilija raised a point about optional interfaces not being a reliable "overridable" for `#[Override]`. I can certainly understand that concern. At the same time I think there could be value in being able to say "although all overridables are optional, this method must override something, so at least one of them must be present". This would be applicable when a package provides compatibility with multiple tools (or versions of a tool), but still requires at least one of them to be present. Besides I think that using `#[Override]` with an optional interface would be a very deliberate step so such consequences would be not only expected, but intended. I've added an example illustrating this to the RFC. Does this justification make sense or does it sound like a horrible design? Would it be better suited for a secondary vote? I haven't yet investigated how complex it would be to let Overrides ignore optional interfaces as non-existant. Does anyone have strong feelings on this or any other concerns? BR, Juris ------=_NextPart_000_0387_01DB8D59.2184AAF0 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi all,

 

It’s = almost awkward to bother the list with this humble RFC amidst so many = exciting proposals :)

 

With help = from Ilija and Niels the implementation is now working and tested, so = the RFC seems getting closer to the voting phase.

 

Ilija raised = a point about optional interfaces not being a reliable = “overridable” for `#[Override]`. I can certainly understand = that concern.

 

At the same time I think there could be value in being = able to say “although all overridables are optional, this method = must override something, so at least one of them must be present”. = This would be applicable when a package provides compatibility with = multiple tools (or versions of a tool), but still requires at least one = of them to be present. Besides I think that using `#[Override]` with an = optional interface would be a very deliberate step so such consequences = would be not only expected, but intended.

 

I’ve = added an example illustrating this to the RFC. Does this justification = make sense or does it sound like a horrible design? Would it be better = suited for a secondary vote? I haven’t yet investigated how = complex it would be to let Overrides ignore optional interfaces as = non-existant.

 

Does anyone have strong feelings on this or any other = concerns?

 

BR,

Juris

------=_NextPart_000_0387_01DB8D59.2184AAF0--