Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:110437 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 39337 invoked from network); 8 Jun 2020 22:46:18 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 8 Jun 2020 22:46:18 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 00CC3180508 for ; Mon, 8 Jun 2020 14:29:48 -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.7 required=5.0 tests=BAYES_05,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 8 Jun 2020 14:29:47 -0700 (PDT) Received: by mail-wm1-f42.google.com with SMTP id q25so1073126wmj.0 for ; Mon, 08 Jun 2020 14:29:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=0H5OHyLXHpMxNPm/aJ7k28JKZYDHLZSwtFWsFF7pet4=; b=LZMjxiy1gaf9MF/Vnfy13msi1yTPr5g672+hl0lY2qX2O2iVTt5c8Cpw/2Hdnamcn4 9C5JjQuRpDftd2kEUWF5R+ZMA8QABy96Ah7lcKltNqiZNL2cwpTccF1g6FEj+srOixrL lUP/l8AIWpFTibZDLxnPWz947g4Prg0xfEcKorMzUu1hUS4Lx+3OHafTLtEYwBVkreHp 1KUKhyqIW1wQfSzqJGTWL40AJiU3qXFHseR9QxUWTfQefeQEeQsLPlvCrfgyyzE2Ysn2 wKoj7o6lWtsVzfRxlfuOLyCpcqDwyoY0awr8VY8cDl2aYAIF298zRV1pUU7OwMzJjswm SKIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=0H5OHyLXHpMxNPm/aJ7k28JKZYDHLZSwtFWsFF7pet4=; b=r7iKCcdzwbY3VT439OIY8YL7F7YqRBFUcMpXF2alzXx4NQlWQuyImyZH9Ym+EryV7w XTsShr6y3G3FoK66Y1r64K8c7e4260k32Ca0nERLRZJ6W3DkvW5jQat+P7scdu5ZgxCE 6AsXzTG6F+gARa2ONMoRlERNcr1WDzu7dTzvX1JssdEAzucBSmbi/bm52Cq+GCSkYPvu GKbVyPeybKo9+7d9D7A+C1ujOMI7PNK5tRHdkD9EICqqp69XYiA/GW9aRQBzcltLx1dp 8j2PM2+bEu5Xa3AGUBKS+DZzY/+lxWm15GbXN5dV1uhjajIeJk/i9rS5w2LiZesz72SC H14A== X-Gm-Message-State: AOAM530wJisOOIvxZNkvORV4xSIKCUh2qY/blx2Yo5XyiRN4FN1vO0ms TrJtm1SNkh2V16p8DHjwOG/u/5vQ X-Google-Smtp-Source: ABdhPJyVtNW6tHWoi46LVAAtDUVdpUMKiBqjs+bIZ/I6jWmu/p3qrmqqWcNnoLjUBjz4pgrnrOCdtQ== X-Received: by 2002:a1c:2044:: with SMTP id g65mr715849wmg.16.1591651784663; Mon, 08 Jun 2020 14:29:44 -0700 (PDT) Received: from [192.168.0.22] (cpc84253-brig22-2-0-cust114.3-3.cable.virginm.net. [81.108.141.115]) by smtp.googlemail.com with ESMTPSA id b187sm751129wmd.26.2020.06.08.14.29.43 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Jun 2020 14:29:44 -0700 (PDT) To: internals@lists.php.net References: <5ebecd58-9f39-72b9-369d-dbb60b80af36@gmail.com> <17c4780c-b4c5-d726-3ee7-915b7762bb57@fischer.name> Message-ID: <656c4575-19cf-deb7-aea5-e86d97737f13@gmail.com> Date: Mon, 8 Jun 2020 22:29:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <17c4780c-b4c5-d726-3ee7-915b7762bb57@fischer.name> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Subject: Re: [PHP-DEV] [RFC] Shorter attribute syntax From: rowan.collins@gmail.com (Rowan Tommins) Hi Markus, On 08/06/2020 19:08, Markus Fischer wrote: > Since we humans read source more often then we write, I can only > suggest to everyone to conduct their own "visual" testing first and > not just judge on technical merits => I think it makes sense to > consider both here, since we're already discussing a change here. I was just thinking about how different fonts would affect this, and particularly those with ligatures - a lot of coding fonts already include ligatures for << and >> and some have something for #[ as well; I wonder how easy it would be to create a "nice" ligature for @@ In doing so, I found this site which lets you compare text in a long list of programming fonts, which is interesting to play with how the different syntaxes "feel": https://www.programmingfonts.org/ It doesn't have a save/share function, so here's a code sample of the main styles discussed so far for people to play with: // Currently implemented <> <> <> <> private $phonenumbers; // Proposed grouping <<   ManyToMany(Phonenumber::class),   JoinTable("users_phonenumbers"),   JoinColumn("user_id", "id"),   InverseJoinColumn("phonenumber_id", "id", JoinColumn::UNIQUE), >> private $phonenumbers; // Rejected alternative in original RFC @:ManyToMany(Phonenumber::class) @:JoinTable("users_phonenumbers") @:JoinColumn("user_id", "id") @:InverseJoinColumn("phonenumber_id", "id", JoinColumn::UNIQUE) private $phonenumbers; // Double-at proposal @@ManyToMany(Phonenumber::class) @@JoinTable("users_phonenumbers") @@JoinColumn("user_id", "id") @@InverseJoinColumn("phonenumber_id", "id", JoinColumn::UNIQUE) private $phonenumbers; // Rust-style #[ManyToMany(Phonenumber::class)] #[JoinTable("users_phonenumbers")] #[JoinColumn("user_id", "id")] #[InverseJoinColumn("phonenumber_id", "id", JoinColumn::UNIQUE)] private $phonenumbers; // Rust-style with grouping #[   ManyToMany(Phonenumber::class),   JoinTable("users_phonenumbers"),   JoinColumn("user_id", "id"),   InverseJoinColumn("phonenumber_id", "id", JoinColumn::UNIQUE), ] private $phonenumbers; Regards, -- Rowan Tommins (né Collins) [IMSoP]