Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:112020 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 42363 invoked from network); 7 Oct 2020 08:09:35 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 7 Oct 2020 08:09:35 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id D4B3B18050A for ; Wed, 7 Oct 2020 00:23:10 -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=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from vie01a-dmta-pe05-3.mx.upcmail.net (vie01a-dmta-pe05-3.mx.upcmail.net [84.116.36.13]) (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 ; Wed, 7 Oct 2020 00:23:09 -0700 (PDT) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1kQ3n2-0003ze-05 for internals@lists.php.net; Wed, 07 Oct 2020 09:23:08 +0200 Received: from mail02.home ([213.47.1.177]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id Q3m3kJKZdIr7GQ3m4kb3bn; Wed, 07 Oct 2020 09:22:08 +0200 X-Env-Mailfrom: markus@fischer.name X-Env-Rcptto: internals@lists.php.net X-SourceIP: 213.47.1.177 X-CNFS-Analysis: v=2.3 cv=QN4WuTDL c=1 sm=1 tr=0 a=/qIKuKYhvfCm6iufBMIR7Q==:117 a=/qIKuKYhvfCm6iufBMIR7Q==:17 a=IkcTkHD0fZMA:10 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=afefHYAZSVUA:10 a=2EALvoLjsrEA:10 a=ZZnuYtJkoWoA:10 a=ps_Qo0zU8b02OAGdbhkA:9 a=QEXdDO2ut3YA:10 Received: from mail02.home ([192.168.1.14] helo=the-matrix-has-you.local) by mail02.home with esmtp (Exim 4.72) (envelope-from ) id 1kQ3m2-0002o6-BJ for internals@lists.php.net; Wed, 07 Oct 2020 09:22:07 +0200 To: internals@lists.php.net References: Message-ID: Date: Wed, 7 Oct 2020 09:22:06 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.3.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam_score: -2.9 X-Spam_score_int: -28 X-Spam_bar: -- X-Spam_report: Spam detection software, running on the system "scanner01.home", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi! On 06.10.20 17:15, Sara Golemon wrote: > My opinion on constructor property promotion (CPP) is that it's something > for small value object classes and should probably be regarded as > code-smell on larger classes. At the same time, annotations belong with > more complex objects and not so much with small "struct-like" classes. [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 NICE_REPLY_A Looks like a legit reply (A) X-CMAE-Envelope: MS4wfEAd4rZpeWv1TgBJf6X9OJsDLvf6JqTKO1ada+kwcozr1bsa46AOfNoF9KlG4TNXLLDfAVWfibvNBBw+f2xNfyt5xut4P/sXMClROz1kuh1l/ECV9ZUu oux9tgcCvC7DeANwHWVNUev80tgcfhQMTAfopdK5OopZ17aYHN3eAU62 Subject: Re: [PHP-DEV] Attributes and constructor property promotion From: markus@fischer.name (Markus Fischer) Hi! On 06.10.20 17:15, Sara Golemon wrote: > My opinion on constructor property promotion (CPP) is that it's something > for small value object classes and should probably be regarded as > code-smell on larger classes. At the same time, annotations belong with > more complex objects and not so much with small "struct-like" classes. Just wanted to chime in on this: I can foresee already the impact CPP will have on dependency injection: sometimes you just have complex business logic with lots of (auto-wired) dependencies and have to pull in n+1 classes into the constructor. Currently 5+ deps create 3*(5+) codelines for not much value. My point is that I see much more value _outside_ of "value object classes" with auto-wiring, reducing boilerplate _a lot_. That said: I err on the side of forbidding it, if we've no clear consensus how to do it! thanks, - Makrs