Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:128123 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 E8BD41A00BC for ; Fri, 18 Jul 2025 17:42:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1752860460; bh=oc2MXn7FNZ4VWaz64uLqw14+uND385+vBREr6W02Eds=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=nHsdOzOcfPyBAdTjRnEuo4tSnHvURaJkblY2CPfMDw9oAmEf4qj0myQAiBFlrzZDD v33qAPmQ8iDtg64GgkkNz0KkY/AIlEJDnnZnzQ55mqPZTMPERuFhEo8UnLK8i0OcG3 O4rIHFEc4w2EJFT4Uj/LrLG9VY4XsUvgtjOx0nijSLcjERruDDOdyCaDlRQDwAaIQg kCZVoqOL5eajLe5NU9Azuqdmq/TyWPigoMO7yQh0uWbcCZBy26WyELCGaKWfGc00Wm j9sg9QFyZUzhqx9GNyGp4l9nM0cDJoQnb2/+RAY7ygeyxYH+Y9jNNtBh7hcAri8QT+ dE8VHTfEdx3sg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id EBD6418064C for ; Fri, 18 Jul 2025 17:40:59 +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.2 required=5.0 tests=BAYES_40,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from chrono.xqk7.com (chrono.xqk7.com [176.9.45.72]) (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 ; Fri, 18 Jul 2025 17:40:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bastelstu.be; s=mail20171119; t=1752860564; bh=2STvmvSqGiLNuXay4y9dQTZ7zxlVuoQUKWK7K4PVHaM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type:from:to:cc:subject:message-id; b=h0YHBnqvonr5Zity7OqOLROi/M3lB/zGlgQe8AnTwQLsS/H8rb16X2FutMuIhKy6G BUtZSa3yskIM4WrP9F0/0NdXU3vt5YKaZakSE/xNXuJJ8w+QvL4RcJWobsohxswS7/ RglC4JV5fzFBvCbINFtyqhF1tXOenGjv1UnWufN0yJk5V/Ut8G2GkdmlIxo9H7YjFq 93Va4/KCYTCGmwzkrbifEd3exVRMRDoHVtmkx1BImsU1zsRLC0i3SD4JW5tuzDTkux ekpVjjaI5+EHPdcb+7Vt1b+No+sieP/tmq9eEkbRwyi9oiV1JvGXyRWpUT8BfN4Sw5 vut3RkOEyNuNg== Message-ID: Date: Fri, 18 Jul 2025 19:42:43 +0200 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Subject: Re: [PHP-DEV] [RFC] Readonly property hooks To: Nick , erictnorris@gmail.com Cc: Larry Garfield , php internals References: <1e8634d7-ac1a-4025-b4e2-1948aabf5251@app.fastmail.com> <9D5043B2-1589-4FD5-B289-6E98FB1177BE@nicksdot.dev> <0856c89f-2000-448a-bbbf-c145a8699f6a@app.fastmail.com> <2641b8bc-6337-4b75-a5a3-93dee1b03796@bastelstu.be> <0d9a2968-26dd-43dd-9733-d2eb621ab9ec@app.fastmail.com> Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit From: tim@bastelstu.be (=?UTF-8?Q?Tim_D=C3=BCsterhus?=) Hi [dropping most of the folks from the Cc list to reduce noise a little] On 7/18/25 19:08, Nick wrote: > As mentioned earlier, this is my very first RFC. I am at a point where I am a bit overwhelmed. With an RFC touching core language semantics, you've certainly opted to touch a hot topic. Even for me, as an experienced contributor to Internals and the PHP language that was quite a few emails to work through, so I totally get being overwhelmed. I think a big contributor to this is that you've choosen a less-than-ideal time to propose the RFC. As you are well-aware, by now feature freeze is in less than 4 weeks. Many of the core contributors, including myself, are busy with wrapping up the implementation of their own RFCs or helping with the review of others. Keeping track of multiple last-minute RFCs at the same time and carefully thinking about the implications and then, should the RFC pass, also about the implementation is really demanding. I'm in the lucky position that I can spend part of my company time contributing to PHP, proposing RFCs and also providing feedback on other RFCs. But I can't make this my full-time job, so I've specifically set aside several hours my free time today to catch up with the thread to be able to provide my feedback on the RFC. The announcement of the upcoming vote has caused me to send out several emails all over the thread that were less refined than would be usual for me, because I felt the need to get out *something* before it's too late. > That said, Larry and I heard you and already decided to offer a split vote to enable us to at least land “set only” in 8.5. > If we didn’t misunderstood it, then y’all agreed on `set` (only) should be allowed? I am unable to come up with arguments against supporting a set hook for readonly properties. While I'm not sure I would be in favor (I would need to think about this more), I would not be against. So I might abstain or I might vote in favor after I had time to fully think about it. > Not exactly what I wanted, but it is what it is. I totally understand it's discouraging when needing to wait for another year before being able to make use of one's own contributions. But at the same time any change to the language has a big impact on the ecosystem and needs to work not for just one year, but for 10 or more years. Some things can probably never be removed from the language. So to me it's important to err on the side of caution. "No is temporary, yes is forever". > I offer to follow up with a “readonly `init` hook” RFC for 8.6 to sort the rest. I'm certainly happy to help out with figuring out all the important details and possible edge cases for an "init hook" RFC for the PHP 8.6 cycle. Note how I specifically left out the "readonly" there, since I don't think there is a need to restrict "init" to just readonly properties. > I’d appreciate if voters could settle on a yes for “set only” for 8.5. > > Wdyt? Would this help to get closer to closing the discussion? From my side, removing the get hook part from the RFC would definitely settle the discussion. Best regards Tim Düsterhus