Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:124510 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 608EF1A00B7 for ; Sat, 20 Jul 2024 13:47:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1721483312; bh=fxQgHNKLw6foy0fJmN7eITO4ky+2cIVsD4MoJXMxiBA=; h=In-Reply-To:References:Date:From:To:Subject:From; b=Pnd/jH6Z6x1uMTRUkTyhw0ozsqNKwyhOkCbNJVe1dHrYmftq5o3yG/9ZqYDM/9iwn QXm1Q2F+bwp5qqr65ukY3Qm+JSW5dk/zx+K/7BR2rFq+uXphGl4oirmaQGDgpBPDyk Ies2FKu0aNwjGWbBGxd5o2svo/rLVbbM2IZHIF1CFd5tBtIkRqxqPhpMAwQ+qiVUXf fajaHwW7yuUMBdTVJQ0rp9VTTVuz2Df40jGHEl/WQIlhxRRNwHng1k+SWOFGxLpytf 739AJq5k++awf2N5WkyNNG4qzFJM9z3xDk/ATYCnvDb7ToL4tnl63LNkDVHGIsk6ob SM73R/qvKz8Mw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 9286E18003E for ; Sat, 20 Jul 2024 13:48:30 +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.1 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from fout4-smtp.messagingengine.com (fout4-smtp.messagingengine.com [103.168.172.147]) (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 ; Sat, 20 Jul 2024 13:48:29 +0000 (UTC) Received: from compute9.internal (compute9.nyi.internal [10.202.2.228]) by mailfout.nyi.internal (Postfix) with ESMTP id 86F451380209 for ; Sat, 20 Jul 2024 09:46:57 -0400 (EDT) Received: from imap49 ([10.202.2.99]) by compute9.internal (MEProxy); Sat, 20 Jul 2024 09:46:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bottled.codes; h=cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1721483217; x=1721569617; bh=KzwF78exDY TkLZ+4j1IlKy0a39r5EKltCOT5eh2abgc=; b=APNBIZ8yeaENx1GnfnIieSTY8H 8Y6geke6zm8acLHbnVGuqdRvvpgpTZfTAZJLDbSst9k/DdlNWPxYr0n46vE5TCEm qs/cFlTfaARngX3TL1xpHJV0GDx1SviCBbkezeQxVPFBzSXylVaHaUvdKmqXHYVD IhFQfMFbTNOic70wvzchwf00eSzhnioQAHmoqbUv1vYuE79OPesKFIZYyij5M9mS SZ20oyG7JwG5Z/QarXStZ1P4fDXPyZEh6OFfME6KA+Tp7yGuS6SvIRuF9oqZsRoq Kxvh5cEGOV+J2Fcwk5w4DruwbjG05rPP/XjI91aOKeBWomKPlLOHNJdfoOpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1721483217; x=1721569617; bh=KzwF78exDYTkLZ+4j1IlKy0a39r5 EKltCOT5eh2abgc=; b=OTV97JA25CDZLWx4SI26nW1Xh76IJO5HyS1ZnZSMS/h6 XS4eqjJmzui0A03iQqXQDcQoxWWsXL/q/eBF3hXpSeq/9kJ8lsP9GzE9SN5P16qa 7LmsfZ50n+9KLHHaQR34XVo14yB4VAEYGfbb7VL/X+tbSMFwpgjCeJ8Ugytbj4zi yOaeCcs8rnEx7OE5wEL1nrf8gKbK4f0Zc+oikt/hqTirR3fxeTm5iIakKPusLNYr aAZBmfLjPGvEoimD2RmIMa7MFltaCJECnMGeX9fR+OEI7+OIKK5Eh9U1pNfmy5tN xQ4GNvhvpeGkkz7mmoZaAt8m/XbjRKo65LU2jgNNNQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheefgdeikecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesrgdtre erreerjeenucfhrhhomhepfdftohgsucfnrghnuggvrhhsfdcuoehrohgssegsohhtthhl vggurdgtohguvghsqeenucggtffrrghtthgvrhhnpedufedtgedvhffhkeektedvffdufe ekleffuefgiefffffhieefveelhfetteehtdenucffohhmrghinhepphhhphdrnhgvthen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehrohgsse gsohhtthhlvggurdgtohguvghs X-ME-Proxy: Feedback-ID: ifab94697:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 35E4315A0092; Sat, 20 Jul 2024 09:46:57 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.11.0-alpha0-568-g843fbadbe-fm-20240701.003-g843fbadb Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Message-ID: <284c6693-d9bf-4495-adc1-3cc8d5e54ee5@app.fastmail.com> In-Reply-To: References: <0a6a61cd-f203-4dea-a7f8-97e6b885c52d@app.fastmail.com> Date: Sat, 20 Jul 2024 15:46:36 +0200 To: internals@lists.php.net Subject: Re: [PHP-DEV] [RFC] Asymmetric Visibility, v2 Content-Type: multipart/alternative; boundary=5295d6dfaff544ce898a1cd5f57c6898 From: rob@bottled.codes ("Rob Landers") --5295d6dfaff544ce898a1cd5f57c6898 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable On Sat, Jul 20, 2024, at 03:14, Larry Garfield wrote: > On Wed, May 29, 2024, at 2:15 PM, Larry Garfield wrote: > > As promised, Ilija and I offer this revised version of asymmetric vi= sibility. =20 > > > > https://wiki.php.net/rfc/asymmetric-visibility-v2 > > > > It's still essentially the same as last year's version, but with a f= ew=20 > > adjustments and changes: > > > > * readonly properties are now supported in a logical fashion. > > * We've brought back the abbreviated form, as public-read, something=20 > > else set is the most common use case. > > * The section on magic methods has been greatly simplified. The=20 > > implementation itself hasn't changed, but the explanation is a lot l= ess=20 > > confusing now. > > * We've explained how aviz interacts with hooks (they don't, really)=20 > > and with interface properties (in the obvious way), which didn't exi= st=20 > > at the time of the last draft. > > * We've added a section with examples of how aviz is a concrete=20 > > improvement, even in a world with readonly and hooks. > > * We've added a section discussing why the prefix-style syntax was=20 > > chosen. >=20 > Hi folks. After a side quest to polish off hooks, we're nearly ready = to bring aviz to a vote. >=20 > We've made one change since we last discussed it: Specifically, Ilija= realized that __set's behavior is already inconsistent, so supporting i= t for aviz properties with invisible set would make it even more inconsi= stent, not less. For that reason, we've changed the __set behavior such= that a non-readonly aviz property will not trigger __set. Further deta= ils are in the RFC, but in short, all of the use cases for that behavior= now have better alternatives, such as property types, hooks, and aviz i= tself. So there's really no point to falling back to __set in edge case= s. >=20 > https://wiki.php.net/rfc/asymmetric-visibility-v2#interaction_with_set= _and_unset >=20 > Baring any new developments, we plan to start the vote early next week. >=20 > Cheers. >=20 > --Larry Garfield >=20 Hmm, There=E2=80=99s a lot of existing code that relies on this behavior, it=E2= =80=99s pretty much the best way to create proxies without requiring cod= e generation. This is a pretty massive breaking change.=20 =E2=80=94 Rob --5295d6dfaff544ce898a1cd5f57c6898 Content-Type: text/html;charset=utf-8 Content-Transfer-Encoding: quoted-printable
On Sat, Jul 20,= 2024, at 03:14, Larry Garfield wrote:
On Wed, May 29, 2024, at 2:15 PM, Larry Garf= ield wrote:
> As promised, Ilija and I offer this revis= ed version of asymmetric visibility.  
>
<= /div>
https://wiki.php.net/rfc/asymmetric-visibility-v2
>
> It's still essentially the same as last ye= ar's version, but with a few 
> adjustments and ch= anges:
>
> * readonly properties are n= ow supported in a logical fashion.
> * We've brought ba= ck the abbreviated form, as public-read, something 
&= gt; else set is the most common use case.
> * The secti= on on magic methods has been greatly simplified.  The 
> implementation itself hasn't changed, but the explanation is= a lot less 
> confusing now.
> *= We've explained how aviz interacts with hooks (they don't, really) = ;
> and with interface properties (in the obvious way),= which didn't exist 
> at the time of the last dra= ft.
> * We've added a section with examples of how aviz= is a concrete 
> improvement, even in a world wit= h readonly and hooks.
> * We've added a section discuss= ing why the prefix-style syntax was 
> chosen.
=

Hi folks.  After a side quest to polish o= ff hooks, we're nearly ready to bring aviz to a vote.

=
We've made one change since we last discussed it:  Speci= fically, Ilija realized that __set's behavior is already inconsistent, s= o supporting it for aviz properties with invisible set would make it eve= n more inconsistent, not less.  For that reason, we've changed the = __set behavior such that a non-readonly aviz property will not trigger _= _set.  Further details are in the RFC, but in short, all of the use= cases for that behavior now have better alternatives, such as property = types, hooks, and aviz itself.  So there's really no point to falli= ng back to __set in edge cases.


Baring any new devel= opments, we plan to start the vote early next week.

Cheers.

--Larry Garfield
=


Hmm,

<= /div>
There=E2=80=99s a lot of existing code that relies on this beh= avior, it=E2=80=99s pretty much the best way to create proxies without r= equiring code generation.

This is a pretty = massive breaking change. 

=E2=80=94 Rob
--5295d6dfaff544ce898a1cd5f57c6898--