Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92711 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 98652 invoked from network); 25 Apr 2016 08:18:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Apr 2016 08:18:01 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 157.56.110.104 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.110.104 mail-bn1bn0104.outbound.protection.outlook.com Received: from [157.56.110.104] ([157.56.110.104:43500] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 49/E1-17738-7B2DD175 for ; Mon, 25 Apr 2016 04:18:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=RPhgb/4wCzFfzHkrVU70Zc457u9AaPE9DpdFX+kybV8=; b=30CZDOy84eQWZOI1dfAZ3e3btmY6SQWj/4v74I5pWD9GEHTohj+MVrlOvePKiEwlzeOgQ0cce+a3LmGK19jwNSqJnbYrF8Vn4bJVS07nBmORFGgYrev46qAbCPI40mWqS1fkxfNpKXIhc5+7V3AYgNzkjlXkP+HCSD0kRUCjgbE= Authentication-Results: php.net; dkim=none (message not signed) header.d=none;php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) with Microsoft SMTP Server (TLS) id 15.1.466.19; Mon, 25 Apr 2016 08:17:52 +0000 To: , Benjamin Eberlei References: <571BA0F0.2030400@fleshgrinder.com> <571C82A7.2060706@fleshgrinder.com> <571CB44C.1000704@fleshgrinder.com> <571CBD1E.7020103@fleshgrinder.com> CC: Sara Golemon Message-ID: <571DD2A3.2020106@zend.com> Date: Mon, 25 Apr 2016 11:17:39 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: <571CBD1E.7020103@fleshgrinder.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: VI1PR02CA0008.eurprd02.prod.outlook.com (10.162.7.146) To BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) X-MS-Office365-Filtering-Correlation-Id: fd78435c-d02e-4cc3-ee73-08d36ce21a68 X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;2:519/XHIEEU016RjapEtpPUlQVdtccTttxX9YguAM4S2EIDU+nekCtmOr+Ylm1F2cE0VCeIkOjI4W3GKjc4gYuh/tc+e9dm8f4RYFinlY55U8PQ5niYrmxoyup9gdKT8XPYvBc4+ajyNirz3MyT5XW5RlLnY2/0kMvKy0c9XoeOzK140Md7V+3g8tj0JidvGI;3:78L9NslknVki0+TME+i1uWcvFQBPn/BVzawS7a1snA66yjyu6mj+QzJCGE/kVxE7O7xL3uaJPGU3lw7aBn//Tk7qOXFNVHJlZ8jZAF08imR26tSWv0C6LwCzCDsVVLwF X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1784; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;25:Z0KDkJvpvGSNrXPWeyvZ1FprReBFb3AJInhHSWBiTpJdgf4o3qZiPd9hB4VFUa+FPJitP/zSo7/CmYP7Hljm1Cq5WhC24tyxXLam97ebbI2ms+t5iySPJmcyaWd1DG3nrHcpKh2D3HdZTUM6LCu4I8o2rbH6QSFq3bsXYEMqpPNJkTqNFW35J9a9oh+UlZq7+I/riOfYIz1kciluNUs1eFJikUDHphJb19inRwvhBEDNJBSiV48S1kd36siPlAlBLuc0JGYdAAgf2M3KR8w913lZPFD2EC4Bl7XAEWZxqFoW8ihY4/46yknVs5k2TR7tCJuaEUDM/REOzf998K0bUPv8Iy6qtjlJrhwYxgAL13KWrIOID2FbXfMPzflo2d8ZzpwO5FA/gz/SQNY8Dejp4Klr/hmcfev9UZO5XuSZAg0iwuqv58U5ShOqF2LrrlSifPl2ZNCpPcCLYyVSttDRpb3P0U8DITasFJgWWfc6Yg0kqtESHsr2V2LMUY7aAln0+WxCgh4tX2QgYbhydhh4an7gbYUi5fy+db3KGThXVIOpL3DGmeKm46/x2VxEXbkem09EgPCR7tHqxsPKmvqE0b3lC0lt/b2hEpmohwWqbU0mVkO95N/5KXBMA74iJgtjfAMHXf8ju67J/lPT1PvOzw== X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;20:qvWlJ4uCmVtSmIafPMKqbnXt9O200PsYsAHLZWaUwa4a4uaHMYcm1UEOzef3sheAO0B02KXYopOnDMKv5GKI5/IXEb7TK3wLjwvidk4iF85d62Hgo4iSOA7dtfqMqW5BoSUUSj25vfAuDtXxFVZ3HniUmKsuIpbSZYM2ZTruIjfHz06SaDBK/NHsGGl406AtIIHF/MW6TM0YU2SnhUqNjLDvkidPmKUt+Y42wSHvEkyUbX+/Wabm4CuubYQtc771kj0Og7IPL5GyNcj9ZztqC2eSU7W4zZ53qRtrHbsXl+vjIZcMX0P+lY1Ikh7cvnXyKXi0TVpIexubo5sGzG9gKZqftAQc/+IGIfn5bs5uQahgB7oaC5rQcQQ2MFm+peZ6B7aqnNfLWoFyKaUIxpeIkFdsigOd5FhhJ2n09WRC4V9O9O3NydNUtHK7y63uZ53sQWGTHIOraZWgA6ovo4mFV7cXmI7kl7cI9gEQ5pwyGdlO9GBdf/qlEo619VM+XZ85;4:1Rabj36ggAHwA09Kr5e+maa6ZzUjx/noXXOEs+wWAhC2fsgMEhTF6RHsrKaCeyovX+nIY11rKfScUJuGG9Dpb4Bm+WhLvdy3ELJGqVUAri2NZi1lVgizr6DhXL1/O1B3JgDptU6o8ee3k+dM+LVV+qnF9GZlHUCunQnM7kmJEK0t4eCYoQJ91Ewls34tIQ+zbdOKHo11MM04h+arSKF7jpqw1BCrh542LJVMETK3K6EUbX0xz8YHkunXi8xQ6J6khQ7Bsgfbd+Mim0aJZn3Yy5/AZ5auPpDbMxP0Yg/ZjuZjfZpphRpWw+vr7+ZqUpHmvNG1u1FE4ERrbrWGTM/KN63FBzWLGo7rlFCPHCPA2R3JEaTyANAYmgKJ6pf8TVYT9m/+c2s0D1KUst/URVp+lQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521062)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:BY2PR0201MB1784;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1784; X-Forefront-PRVS: 0923977CCA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(377454003)(24454002)(50466002)(50986999)(65816999)(54356999)(87266999)(77096005)(76176999)(86362001)(33656002)(2906002)(36756003)(92566002)(81166005)(64126003)(83506001)(230700001)(5008740100001)(3846002)(6116002)(586003)(1096002)(93886004)(189998001)(4001350100001)(5001770100001)(59896002)(66066001)(65956001)(2950100001)(23676002)(4326007)(42186005)(65806001)(5004730100002)(47776003);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1784;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjAyMDFNQjE3ODQ7MjM6ejVHMFh4aytySmcvL1pwM2F1RTBQZnRm?= =?utf-8?B?L2t4Y3g1WWRRbVdCU1RydHo4YkxsbmJ4YlJ5ckZqeUMwOUcrVGlLaDNYTkgw?= =?utf-8?B?UmJuV0QxQ3RiRlF2NlVZOGVsVGZTSlVjQmdmUiszU0IxVERxRjRpdzdWeFli?= =?utf-8?B?Z2o4NDNrbFJwbkErNDZtVm5yTmRFbGlqKzd3aWFZR3QxNFBUNHVwQzZTNlhw?= =?utf-8?B?M3hFdUt0MTN1N21jNmxyamtOZTlxbFVIU0w3M3pTTVo2N05HblpNWlE5Y3cz?= =?utf-8?B?RHdWeSsvWTc2MFF6SGNTVzRNVUhaV2VCN09qK2licGE2ZkI5SkFjSDVRV0dV?= =?utf-8?B?bVdQY0ZvY1g3RUJQWDErem9sTmVvL3BVZVdLQ0ZkeWd0MTZWYkl1bFdENGd3?= =?utf-8?B?WlRmYlZTUFVOREtIV2hnNzVDWTRSNWFBbzdEd2RCYm9MaVgxM2xLNXJoeUFZ?= =?utf-8?B?bUZnNEdvNklxdzB6bStrUEhGUmxrcUZpRm9GcXA2NWZaMm5Ed1d3akNCdVRZ?= =?utf-8?B?encxc0FDVWZsdUJhZ09obDdSYjBxaGZ0QnQ0d21yaUVSK1FMMVc1YzJOVkRp?= =?utf-8?B?ZXIyb1NJRVZRY0lTNWtJZlczOEdiRVkwZCtrSTBha3ovYXpOdExkbktWcXV3?= =?utf-8?B?cGRzaGhuT1pzYjYweUYrZHd3KzRpVHpNSExSclYvTitvaTNOM0dzOVUwaTlw?= =?utf-8?B?eHJZbFNEblgxUFBMelpXRW0wUlFuT1dXS3lNQ3JZL2lvanBIalp6YjR2d2c2?= =?utf-8?B?b0wvclZSOTZEbVMxalVDU21XMGVHY2Q0M0VSVlJlSU5MNVd1K0VCQ0kwYU9T?= =?utf-8?B?akJvYmx3bFRIcUFhNXl1MTNYdGxIdG9SNExnY2lRS3pVRVkyelJnK0dhYVJ4?= =?utf-8?B?MEt3bGFGNjZrM0dCOWNOZENRR1MzVkFvYXZ4WWlBMVV4aW1oRVMxVkd2SW5s?= =?utf-8?B?Q040WktrayttVGJ3YlNuS2NNNDdMME9RZ0Y4ZGxzcVFOWHA4SHhzL2JoUGpX?= =?utf-8?B?aEdlWVgwZTFCQ28rODFNZkx2UTd5T2RkYWZleUw4NFJRRkRwM29HSWlwcW5B?= =?utf-8?B?Tk16Y1JnV1d1MHczdHZoSlUwZ21SdUFaQlNiN2RJeThJY3lhSE8zelkyay9U?= =?utf-8?B?QkgySXE1UWs5cXFpbTRhK1VXclFFZHBmc2prK2hXd2FSbEtzaHRqOURlT0hY?= =?utf-8?B?RVpJOXpqTmY3UHpmQktqdUQ5T0RybHM0ZGtveVZhSmJVbHVia2VMaWNKbEty?= =?utf-8?B?RXVUWTNVSmFKWmtQaW1mc1NNS1ZtQmgxdDQ3Wk1naFgzOURXSmtZQnhraDJw?= =?utf-8?B?c1VtbU55YzBLMExxeVRyd2pkNktrWXdlbUdQVEJHRzMyMDVxaFN0UmxQL3Ur?= =?utf-8?B?VWpvZmE2emRSVUcxa3pTZVFEMnhscDNHYWtIdXh0VTVzUk9paWxZdVBzN2U4?= =?utf-8?Q?BIMJPZlw=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;5:yUpXnGlntnkBiG7AmuRr2qt3MqYNxAkvKRd4o6WpmGrc5uodKDC/FgpDiSB8HrU6TpmLliwn/M2U7NhiA96cZtzbIYruhXlFt+yd0enFoJ896wNv4iESNW6xyvQiLp4RTnnHwPo/R/OwYBbQmXRrWp5pvnC//MniVW19Jm6GPwcwIBesyUnytu9jII3RgFJr;24:MVY4cjm6AB0EJ4mEvWX8EaLyNgzS07e2Xa6srBpZkHm6Zjxc8exmxM0uByOkOIboDrDF6LKMch9D4IE27SrwH51jE9ui/zQPu5+UzXz1mog=;7:kkB/J8SJq5UcULARkhGFtpluIEwEK2YYpivRJ+bJjmyMbtmvwCFnBattIQUNNqo1VH2KdKmOAB0sKRwk8ZLtRXOMMxu2NVCwsYGQv5XIXiNIReb/h0Z4bK1VicqchHohMUL5d5bO6BzU5O4H99Q3H6K8Srpt8L7GbaaEEpU6qAcFcr0s/gingR7w+POsGwfp9fqgDq6nIo6RyJLywp6BFZ4GhmP8Q1kwTXjF0THv2/g= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2016 08:17:52.9457 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1784 Subject: Re: [PHP-DEV] [RFC] PHP Attributes From: dmitry@zend.com (Dmitry Stogov) On 04/24/2016 03:33 PM, Fleshgrinder wrote: > I am not arguing against the RFC nor the feature itself, on the > contrary, I like it. I just do not like certain aspects and design > decisions of it; that is all. > > Configuration and AOP are the best usecases for annotations and those > should be stressed in the RFC. They are not mentioned at all! > > Another usecase that I am missing completely is the usage of it for > documentation and static code analysis. I already mentioned the /throws/ > annotation, this could help e.g. IDEs to warn you better about uncatched > exceptions form methods you call. > > DbC is a possible usecase but better implemented at language level. The > RFC could mention the possibility of it. However, right now it is the > sole usecase beside the not very PHP applicable `<>` and > `<>` examples. > > You see, this is more a problem of the RFC text and not of the feature. ;) > > Another think I complained about is the proposed syntax because it makes > annotations look like function calls, which they simply are not and will > not be. The syntax is misleading and a possible built-in functionality > of reactive annotations (not saying we need them) at the language level > for userland is blocked. I know I just repeated myself. > > The extension you mentioned works just fine without the brackets. > > @invariant CONDITION; > class A { > > @ensure CONDITION; > @require CONDITION; > function f(){} > > } > The proposed by you "@..." syntax just won't fit into PHP grammar, because @ used as silence operator. Attribute, syntax is taken from HHVM. I don't see a big reason to introduce more fragmentation into PHP world. Personally I don't see "foo(a,b,c)" as a function, I see this as a predicate. It's possible to extend RFC with additional use-cases, but the longer the RFC the less people read it. Thanks. Dmitry.