Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:109220 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 4617 invoked from network); 23 Mar 2020 02:24:15 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 23 Mar 2020 02:24:15 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 7E3581804C3 for ; Sun, 22 Mar 2020 17:48:18 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-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,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS11403 66.111.4.0/24 X-Spam-Virus: No X-Envelope-From: Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sun, 22 Mar 2020 17:48:17 -0700 (PDT) Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 09AE85C01CF for ; Sun, 22 Mar 2020 20:48:17 -0400 (EDT) Received: from imap26 ([10.202.2.76]) by compute7.internal (MEProxy); Sun, 22 Mar 2020 20:48:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=nsVZIYHOgiQfKiaAfSmFqUqn7apBV FfdG/yVw33EZeg=; b=zI/niBDTOgNGNzDaYhSylIKIYw5G8sKf8Jy41hHF7KeDM IjRBCSOmqrWJOXIVTIHgDysEMK7GqZ1HBGhBeIkF7i9HWfRc73NNbIwJ9yh6bIUR I5ecE+0Gu03qUTWjPhjiibuG97C1qNj3PME7hofR6PA0CdA8CHk4oY89IwwifS7a WRcXjM93lxi5lnInqSksyoHCL3fkfrN9O0DjFc6ojS6GDVLTCWMqOJzVNfvTgc/Q ujEYzckwwXfwwmTYw/mvuip+cbEvltDriVilVH81djpxXpavEeAbPs01R4+nPaS3 y/Olh2hORgKbMjFk2ugOmoFeGlY/gsBYctIZNdEZA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrudegjedgudegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkfffhvffutgesthdtredtreertdenucfhrhhomhepfdfnrghrrhih ucfirghrfhhivghlugdfuceolhgrrhhrhiesghgrrhhfihgvlhguthgvtghhrdgtohhmqe enucffohhmrghinhephhhivhgvrdgslhhoghenucevlhhushhtvghrufhiiigvpedtnecu rfgrrhgrmhepmhgrihhlfhhrohhmpehlrghrrhihsehgrghrfhhivghlughtvggthhdrtg homh X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8B8B014200A2; Sun, 22 Mar 2020 20:48:16 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.1.7-1021-g152deaf-fmstable-20200319v1 Mime-Version: 1.0 Message-ID: <1b781e1e-3f27-485b-ab47-5eeaf9496548@www.fastmail.com> Date: Sun, 22 Mar 2020 19:47:56 -0500 To: "php internals" Content-Type: text/plain Subject: Improving PHP's Object Egonomics: A broad analysis From: larry@garfieldtech.com ("Larry Garfield") Hi folks. There have been a lot of RFCs and possible RFCs of late that are all circling around the same related problem space: Working with objects right now involves too much boilerplate to get things done. As I've mentioned several times, I believe we need to be looking for broader solutions rather than narrowly-focused one-offs. To that end, I have written an extensive analysis of the problem space and the current and recent proposals. I've put it on my blog rather than inline here because it's quite long and the blog offers better formatting. Discussion can happen here, but I'll also respond to comments there. In short: I believe our biggest potential win is to focus on 3 RFCs: * Constructor Promotion * Named parameters * Compound Property Visibility For details, see the full writeup: https://hive.blog/php/@crell/improving-php-s-object-ergonomics Thank you for your attention. -- Larry Garfield larry@garfieldtech.com