Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92718 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 10019 invoked from network); 25 Apr 2016 09:00:32 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Apr 2016 09:00:32 -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 207.46.100.117 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.117 mail-by2on0117.outbound.protection.outlook.com Received: from [207.46.100.117] ([207.46.100.117:8416] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 2F/02-00233-DACDD175 for ; Mon, 25 Apr 2016 05:00:31 -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=e+fAn/TI5jBjz0HzlMVvkb3cVe36y/6Jm6pOHkyquSI=; b=vGIByv3/UDKHVYtQliox1G71VQQE2knJ1M7IVCeaIuX2lHXUaXx1KIFTd/62ytdyvwnIunywayZGtHolOE9ZFlE1r2YqHERabagpsFQfst2m2T1oQhDIF7JZmRgWJey7HF4he7/l8VxtJwACoWp9ZJd7HNlvhrzuJnByzURlmtc= Authentication-Results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by SN1PR0201MB1792.namprd02.prod.outlook.com (10.162.228.24) with Microsoft SMTP Server (TLS) id 15.1.466.19; Mon, 25 Apr 2016 09:00:25 +0000 To: Stanislav Malyshev , internals References: <571D8D95.7050107@gmail.com> Message-ID: <571DDC96.1070905@zend.com> Date: Mon, 25 Apr 2016 12:00:06 +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: <571D8D95.7050107@gmail.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM3PR03CA011.eurprd03.prod.outlook.com (10.141.191.139) To SN1PR0201MB1792.namprd02.prod.outlook.com (10.162.228.24) X-MS-Office365-Filtering-Correlation-Id: 14b0bacf-ec1e-47a2-9c4b-08d36ce80ac6 X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;2:D4OY5vHBrkr2j9bFbWGZUpgprnhfsASP0DxB4nNjBTxwW/aewpInhhk3pOeYzT0YHmVIs5A9E59OV+C9htVly/o5iceiNEqqfCBX7Sbi0bHng5DdGiBFZNqS+AsG8/o+wsc15+nKqf8uGhE3eLlc8KRjlHqgQnVo+UlJktkrcNOLtTCIX8XCzzUoeEeWzCk0;3:1yDk2jyPgm389Q/pev05kliJ8UXj1eZ80Gs5ezHIx44vU1yLSwAE/6TxtmtEuZ3Uui4N2ekaizaOyJyU4t+NCJKl9vz8OiOzDGjgywLODFJM6Nf2TUTghWuVtuy2+apd X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0201MB1792; X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;25:hknbADJkn6l4LAxZM+4CcUplRB9RnzGodeL9yY0zg+rSoV5n/G0A691zsyMXDUBdXXr8P4FhsycdCpQOgB+2qpCiRWN4XtsE9uCTLLspAUfRnkoyg7IvtkBGA9RL/1yE1Rfui3RQb7rIOmi/h87M1sYI+tnyqWKy+zJV7m5Qi+8TrxlSpeq1LoH/WZ9uwaT6VcIJvUW4jXk+xaYg7sBELbA3VBOHeS1S9aLarIC13LNoKBZdQfh43BBnUXaR9+M8aY2YO+DziN3cnJZlf4FsFVx+ZjMAWsNRcBY3FArSc2+iKFZFp7sKNKnKe07HJOkqaAFYYmpu/yEUweM09KkYJtYqNiirLyg+9e7TZAl+oTd0F/9N0PrT34jxizcp0rDz0as+I45whTx68l3a8LPQRoPAi3Ch4IfQphfT6QKo4LzDiX7aHpMLq05QbR+3lLxDqd2mbdBy1oQY1TrtF4Ipc6vXMdo1JU41NaXB5nFM2Tdl0Uy+6WP3RIK6iklrGB66e8queygPt8cFkhZdgFaZre9LcH1LM5C66Vzmz0bmxiIm+NkQHQFaO9CeZE4SRUaEy+Ph94lk1PfC38IIpGUz0e8WLl5j3bU4kXbWwsmBR6Rs4wufVQWYeuFkJs8AlqOFvbNKDr41RHJalCGVfgFea1xeXvRGARPLKGcrknYvZekOJTreer8VbVu1CBPph3nLdved2euJZChQW5oeQAHktMUGRbwy2m3wF/SKahW6mJfq1/1ApvLw3oORxXd4/aQsfMWtjLRT3Gid9PJxfMWqEw== X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;20:Ftl80Dlg86HallpnPiRy7NKBZKaR8gL3t4tve4+dgxO9d8uLFvar7qxbTF0TfoFq1mkG6+DBbrX91qhoO8fnjSYR7j6PN7mcG+aXvo8JWSlxTg4PfdNy232ntMxSgzZjqumZuAIykBPpKph7SlGX8lG/Qhbp04a+9WfjmwC+UgrOhMT0Tg17soQPv9pnbKT8wzM3CEhwBWVV3GpkHGjgqwr2qZtXnBIZ/klwe2vd+r+QsL+4mTk2zSxsrp+mjuUv69E+VqI7Sn3HVWIsyWsjTiGDoQ66Msrg2nI2PDfocn0vwtPJt8txw7yhbhBmTkRaiws02Yvzethqn30kHmg0e2wwYL1xb5aC+ODCE6iLBi5L9sUMZL89HuU7phiZ7TRHr9ExegL7punLTcpzXga00IwPz1i1Rx3FwvL5nweNRuZ4CPwTsOQN0Gm8ClAIkLM9JKXYjOEJmxAl2N+JHUAM0WOj6dr1YZH4BGl+4ERziPJJczOj5sTjYQ0qFrcZ/Jb9;4:jqjT3kZ/jD0eI6ifA9xG9cWCuPOR5AF9FZlmaVkw9FiZt+ciUB69m2EPYhja4oAY61seeCv9uG4fc6E04y0gbzuhX5Py8QsrVLU6ACvOGHaIEPKaKk2j1eAslr2ADnO4cdz98mGUygA8AREkgGvCOZnNB5Su6Tdix3uo5xd/69hgHXNz1MjCvCzWUzjkInI+6eLPmbd9i+HRdGYL0Y7QkyFK/crXDstPNa8ciOPy3qiJshcMxSiGn/sz3NoeHKnMTHSueriKY99QGpaNeRdMAjSKbNYHWpTkyWj2kWuTEfzp6hpnLVNvO7No6+GDLMB0kZOuAXChiO3XSDnj0rTRMTBM1MiumheGITziQmuu/bDd+Mr/wq84sRz6P4C21EkfelkD+gYhxTXXpd9TdSiUKQ== 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:SN1PR0201MB1792;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0201MB1792; X-Forefront-PRVS: 0923977CCA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(377454003)(36756003)(23676002)(42186005)(1096002)(6116002)(3846002)(230700001)(81166005)(5008740100001)(86362001)(92566002)(83506001)(4001350100001)(19580395003)(5001770100001)(2906002)(59896002)(65816999)(87266999)(54356999)(50986999)(107886002)(76176999)(15975445007)(189998001)(586003)(2950100001)(64126003)(33656002)(77096005)(561944003)(50466002)(47776003)(65806001)(65956001)(66066001)(5004730100002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR0201MB1792;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjAyMDFNQjE3OTI7MjM6RlpLS25kcHpuSG4vODM5clRha0svWXp1?= =?utf-8?B?NFlzaHVIRjFRVXNOaVZCcEFQTXN0YVpZc1EwOXhGOHZ4bys2WlpkMjVCcXJY?= =?utf-8?B?M0EzUUgyRkVCTGlUTDRMVlNFQXdJd2V6bzRGb3orbUM1TldYdVNlNk5lNUJa?= =?utf-8?B?dE9Ma3BmNFErS0hMd3Y5aUNEaTNuZ0I3OXhwdVhWTDFVT3N0bHVqRE1TaHpP?= =?utf-8?B?ZTJFMUxaOG9ZZUNIMEpQOXFYQ09GMXlKWlF2enQxa2V2V1p6ZE40MVpQSjdT?= =?utf-8?B?U3gwTGZqNG1FcnVLUkk0SHRpQWxrY0g3ZGhlaVNiOVBGcWNYVFU4bk14MUx5?= =?utf-8?B?aE9LYTRwY0FMNDFvQmp1QnNkdC9lcjRWOUlobUViWFlrQTV0d29KNlkrdjVm?= =?utf-8?B?a3Z5ZDRUUklYT3N3VndKVXRCN1NFZld5SStVUGc1VFRzcEVqTW10UlF3UFFp?= =?utf-8?B?QmFDTUh6WThTWHJ2a1NsOW1NeGU4RS9HS2pKWFZSY1lySjNvNW1LQzVic28y?= =?utf-8?B?d1pnK2pXZ09MR1FSeWZTaGFidkxSNHFTUUFjeXFBaThCRytVWGpRaUttWUkv?= =?utf-8?B?MVNvYWFJOUxIUU5tZUZYR0RYYXFoUEwvYkREeUpoK2k5dU9aQlJHREVkcm5H?= =?utf-8?B?SWFJN1UvaWFEMmpsQVl2VVVxeW53S2VwRmk3ODZtTzRnQVAzZWZDZ1B3TlJX?= =?utf-8?B?bk9RSVZEeWlYUTV4cnJXbUtUMkt2VGVTY0t0NWZTMHF2cDF5N3dzTGlqSDhu?= =?utf-8?B?NTJ0dVhLQ2JkaTVTT2NiMnBGdldOSFFxRzBLSEwySTYzZUNSMyt6TTZxcGlh?= =?utf-8?B?NlJ4aW1NaExGYlg1S0djT0hRbWNQdk1VYTZ5bnJpOUlrZi9IandYbmxURmZv?= =?utf-8?B?V21TQmhDa1Y4ci80T3MrNE9XeDJOVGF2Y3ZvNk9CRWtNb0djaGJJTVdrbkEx?= =?utf-8?B?N05YN3Mrak5hc3d3TGVtSUs1M0tBVjFIVkk0eklmUTN3NGVwNVQrZFZLTEdX?= =?utf-8?B?cEJzaHFIRzVNSGpKaEU0bko3LzcvV2ttSW5UQnNEU2lGeGJtaHU1VVVSeWRP?= =?utf-8?B?NGRhdHpRNlJheFp0b1dxdEhuZXcweWwyaFVReEJLb2RpRGNvWnpXVmFBNlZX?= =?utf-8?B?cGtVNkZZSDJUejVJcnNTaFNVK2hwYjd4eC9NVEcwYjRPNjc4VFI5eUxSbGFZ?= =?utf-8?B?dVBMbVEyOHY2S2YxNWg2c0JjMzFwYVA1eVR4ek5kVzE1YkJUWjZsSUZvNkMy?= =?utf-8?B?eGw4TnlkN1dDN1lhcXVQSVNLT3dnYkZGOTYrd0J5elBtYTZDZFl5VEZnbEpQ?= =?utf-8?B?d1FacHUwMjIxOXZ5UWQ1aTU2SnNySk0vcFNDNmtYV2RBYXM2M0xsVS9kUTZl?= =?utf-8?B?eTgrczVoczlSeGJVTUFrbzhoS2VGSkIwT3NCVER6Kythb1d4VHp2T1RjaGUx?= =?utf-8?B?aFArWExoME9pMjVKMHFRWTlqb1JCeDJSVGpDUzYwekQ4VUR4azI0bDV1aVdI?= =?utf-8?B?anRHeEVRPT0=?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;5:SH5G3qzu5eHUZKG8Pnx8F49qdrCkal7jevmPSvr/hk1Tt/4Nya2sw7ykCRLVBqme0vKiptGIM7yAhP3yK9Pp/tGDs6AfVBqxwnhtST3j721c6JbrN9wFsim1zn4DFcd9VOog/dn/6p/3mX7c2rmxA9Ey41RbRtOZysrNSilW8+GHw23IoUiGynzpsBOkz/5s;24:vprWOoWaPlXWjJE3KF7NkZUR7OzqnYZm0TrrwNt0YLJQRLvR1Y6okyZOlr1liqb+gahHjLsygltKyFKQAhjsmb9X5Z6sCwFp+wLGUchJKXA=;7:UhR7Wf5jpryI7Wx57o++GDAA8T5AVfZbcoC+iTQ4fQYWCFWm1padHpSlGIUCjioKu+jg6Lqxr3/rLvjqTyw/ijZrTUrSBR1mxkWZGoXm1pbdTwkJCGCJFMxgxhta/CWn7UB4pAFwzPjahU0WuG3Y7Nn49+Vx2feeaGgrJIJdOVQC6rnrLEaqMZQvS4maQN7iUru0TuK5whC7Y/Rd6S18Vizyxyn89Rp4qFK9QnwD8x8= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2016 09:00:25.0247 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0201MB1792 Subject: Re: [PHP-DEV] [RFC] PHP Attributes From: dmitry@zend.com (Dmitry Stogov) On 04/25/2016 06:23 AM, Stanislav Malyshev wrote: > Hi! > >> https://wiki.php.net/rfc/attributes > I've read the proposal and I like the idea of reviving the attributes > idea and the simplicity of the approach. > > I have the following questions for it: > > - Namespacing. Since the attribute names are not processed in any way > according to spec, it may be rather hard to ensure attribute > requirements from different domains do not conflict, and we do not get > into the same problem we've got into with class names before we > implemented namespaces. How it is planned to address the issue? I'm going to extend RFC with namespace support. Attribute name is going to be qualified string. > > - The expressions support is nice, however I'm not sure I understand > what PHP application is supposed to do with syntax trees? I.e. taking > the example in the RFC, if I got AST\Node representing < > 0)>>, how do I use it? Would I implement mini-PHP-engine in PHP to > evaluate such an expression? Am I supposed to use some other > functionality to do it? It is unclear. > I don't think promoting reimplementing PHP expressions in a myriad of > different ways (which all would be subtly different and distinct from > how PHP understands such expressions) is not good, and if we expose > those trees we should also provide means to work with them. Otherwise > any advanced usage of the feature would mean basically reimplementing > PHP engine in PHP. AST is going to be processed and evaluated using php-ast extension. Nikita was going to propose including it into core distribution. > As a side note, my personal opinion is that for about 90% of use cases > expressions are not needed. For 90% of those which are needed, string + > some form of eval would cover it's use case since all the'd be doing is > evaluating the expression and checking the resulting value. This is a question. We may use AST expression or just strings. In second case we miss syntax verification at compile time. I'm going to describe the problem in RFC and set an additional voting question. > > - As far as I can see, AST extension has no documentation except for > initial README. If it is going to end up in core, this needs to be > fixed. Preferably before it is merged into core. > > - I would also consider moving AST namespace under \PHP since we have > this one reserved (unlike \AST which we did not reserve). For me AST is the best choice here. > > - Are attributes also allowed to apply to anonymous classes/functions? > Would the syntax still work in that case? No. At least now. > > _ I also think <<...>> syntax is ugly and @attribute syntax would be > much better (and also is used in Java attributes and Python decorators). > That's my personal opinion though. @ is reserved for silence operator. Thanks. Dmitry. > > Thanks,