Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127183 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 1D9F31A00BC for ; Thu, 24 Apr 2025 14:31:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1745504970; bh=S4B2bv2WZG/cLws7ZTRqpWCA3Lv/kHay0MHcKnnghQ0=; h=Date:Subject:To:References:From:In-Reply-To:From; b=LNMwhnyfzOWQenYpMExCw5Rs09f1ea+BP9TnJkV6ks2k+WxtjS5pDBIcUOpZdnamg jrnggK9HzKjzdaJxayD4iWMSzDde1pANHn2psEksIOBTz0iZYwFEW5fYTHP+E5iDvD PRIl5oyNusgW2Axcs5WLndIoqRM6r4uZo6sNAT6vp60ZUP2uVlMdgVN0F86BF13evO tbpXLyVSEC56f9IwB3TpKrPDo/lBtaLxK1tkC2IBXGjATbOc1gvMRyDKLJT+R9bxS9 BTTVE6T1RHk+gWk/GzJ826ssfkPY4HbdfGH7QZvYgGRP20nA8dLcxlNxYg4p7akV0p biHBAXhxRaGrA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 7178E180055 for ; Thu, 24 Apr 2025 14:29:29 +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.2 required=5.0 tests=BAYES_20,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.0 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 ; Thu, 24 Apr 2025 14:29:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bastelstu.be; s=mail20171119; t=1745505105; bh=uiNlE1sCshAbta4RHBIXOz1JaGOpKL2QsaqNZEDGOmA=; h=Message-ID:Date:MIME-Version:Subject:To:References:From: In-Reply-To:Content-Type:from:to:cc:subject:message-id; b=NOPxcIrN2gg9HDq8QUJebt4YICzve17EVn3PAF9wpdoM8cVx8/HJI0aLaK3t2xP4c hVYEuRc2y+TA9Oolmo8jidvt4Cb5Pc1oLgZ9FGcuQaQtrejZ+iJ82QyHgUpHtiXf81 7uetBPURxtZKjU9AfiG9OrBESSXGtP6CF3tBnUvGCBPELfFaKIrIw5TwxaIz/FuGzg eOp56FBjRhwLM59YCi2RiVfKlIYrRjr/JDkdihFYRIXPYOpoBxrPYpKHifZ4gWg4d/ Cg0QykLMlqR7otOUpPJa7GCbjwtH0nbQuSjCG/Tz+Vb7UWvDypyne0U4hfhepHqEnh W2J+3iY8Ffc6Q== Message-ID: <158a5d7c-8ef6-4b5f-b8ef-593879a7a896@bastelstu.be> Date: Thu, 24 Apr 2025 16:31:44 +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] Re: RFC: Nested Classes To: Rob Landers , internals@lists.php.net References: <48dce917-d147-456b-9f03-c7e23411adff@app.fastmail.com> <8a16b81c-7dab-4523-a352-76ba0cb4e771@app.fastmail.com> <9c4ac301-dfb2-49da-90e5-37a2824fc4e3@app.fastmail.com> <5b1e6d70-a1c9-455c-93d3-6b22cf1fef11@app.fastmail.com> <52d84a5b-09d3-4e42-9620-a62fb239c21e@app.fastmail.com> <09a82882-f1ee-4bdb-8a27-e46144a711f1@app.fastmail.com> <706e22d7-94eb-44bd-a280-f629ba93b630@app.fastmail.com> <03a5b9a8-9fe1-4656-ab04-dd58669488b3@app.fastmail.com> Content-Language: en-US In-Reply-To: <03a5b9a8-9fe1-4656-ab04-dd58669488b3@app.fastmail.com> 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 On 4/20/25 15:43, Rob Landers wrote: > As it seems that discussion has mostly died down, I'd like to put this towards a vote starting on May 1, 2025. Unfortunately I did not have the time to follow the discussion after mid-March, so this might or might not have been discussed already. I just skimmed the RFC and a big issue from my PoV is the interaction of private nested classes and the shared namespace. All existing private symbols in PHP are “invisible” or “non-existent” from the outside for all intents and purposes. As an example, it is possible to add a new private method to a class, without having an effect on child classes that already defined a method with the same name. To my understanding this is different with private nested classes. A private nested class will “block the name” in the global class table, leading to naming conflicts with something the user shouldn't even know exists (because it's private). This is a reason for me to vote against the RFC and a reason why I preferred Ilija's “file private” classes that are much simpler to reason about. Best regards Tim Düsterhus