Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92714 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 3563 invoked from network); 25 Apr 2016 08:35:48 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Apr 2016 08:35:48 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 207.46.100.122 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.122 mail-by2on0122.outbound.protection.outlook.com Received: from [207.46.100.122] ([207.46.100.122:52640] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 61/B0-00233-2E6DD175 for ; Mon, 25 Apr 2016 04:35:47 -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=GVrLJALFQ4o7ljinHvuGXebaMaFMoM+ZtHqKK8opKNg=; b=foeLjrbPtEusjipEdyWCBAbOiBt7NhfSupUgn6unO3IL/9h5ccDVQETM9KZvKMzg4A2PBwq9Oa6bJWkLYRbSAemjA5yfXboOhvwM3qWCgHGZP5YXWGAQGtwgbSHfAHEvW8AZsixuTWDEhpfvc5PRm317FRlcNvhzLKdVPU9/aKg= 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 BLUPR0201MB1778.namprd02.prod.outlook.com (10.162.239.12) with Microsoft SMTP Server (TLS) id 15.1.477.8; Mon, 25 Apr 2016 08:35:41 +0000 To: Yasuo Ohgaki References: CC: internals Message-ID: <571DD6D1.8020607@zend.com> Date: Mon, 25 Apr 2016 11:35:29 +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: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM3PR08CA0020.eurprd08.prod.outlook.com (10.160.207.158) To BLUPR0201MB1778.namprd02.prod.outlook.com (10.162.239.12) X-MS-Office365-Filtering-Correlation-Id: b1aecc6d-a94c-4f36-e00f-08d36ce49641 X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1778;2:r/z4PpwDpSBzz5CEWCXv4Pu8VmVPwheMqXzzsaUOt+nDlfBRhGI0Q9wMvM+Xo1LKnP++t8sXgAcDmEKGf8jfVsEsFfRN2HdzYFNt1Iwn8mZnYjdSotuDGMZ/UmUkWlZN2ECiZyi6ubc5xe9TuTT9Ou7Ka3fWRhYer8CpnIQvSRV+e/MFoO35WMg8L50wOl0+;3:T73l9QUT6mb584ZKBEL8KAPmsbyQeYLf7sB5v3+hfCrvQsl5aBfMb/vhTzkbGbpuBoR6Z8KeC0Sm399Ud/a+D6v1yF7fdfYGKEsbyb8QvCOlAWp22LJqxQ7HypmyDDVk;25:T6qkAtHawlvLaBZCDGvs9W1q2I4Xksa7Y01zZuqy+EB7ukTDsgrK7LpcNVqzOlvnzJeMunClHu4s8mDrSaZR7RcsZWNtXFdyROGU3dNjhOmSJqSQhIPxqd+qESfyFrBbG1x96lrEs7Bq9UM9jngw1K3B4Dwq4D9UvETpLyEw3vC0aIodXHesKEIRRhqShs15WZjfZNlqDmVfFvGK13jauKgF6RJjaiPAscj9OD8iO59blyxOy5EE6HkbgECnQeuiKuQ0uz9/blq10gmCZhlnizXkCzYFvT58e/zuomKj1n59z6F9YhYqYcRYAsyJN+xMJ68kIH9GVzcs3bz7qw+NYQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1778; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1778;20:SmSQ1lSDybZQJ3253RvB8gHejtATr/XYZfiUfKrqio5BvliYaRipVVT5515woIufblqmSf6paODI7Wghtj4+f6szXP2LszlnP857ii7YADK83rGoeQMd5uh02tdy3cNCXZYTNxnFwqN7a72OFL1cuTSPAabXk2Waf4q6rRINvb5yp3Um4gSDDJRM8eRlURDsktuskgkewyx41gPXVRbDqBdab8xxGvcTTXrrk1HM2xixTftajWw0riJfnIwiUKTvrtxZpeeTwJVnAMXJDzOy1FB15qfTIZC36l9bZZHVoCrTWJe0EpH7QYbf3nIKQAFj3GdQzSBkinl1kWvYUBxgn/AS4Cgl4rhSlIKp8+UHkqcSJMby65fhP1OCX9pTQrDNEaw+RCSOQ7JEAJw+7+67y73RuMhPIC0zLRPJ7OwC6cZAj2AD4mCrrCZWU+hMj6BIgqqSqvkQ2afAYU+X5pn+bEqI9V9BiL0cqZYwBxlwQPnxZ1PqmnV7tv7Acm457Ptk;4:cJs+rREKFKNNzc2DFRg49ggercHKDLP5AWgVUL7A9So6evgLl1b6LBqFA2y4v7XjJuiIwn9KHtIh/6bXMtRho17Rtpx1lo5MJ313afterhxfgKAG3Z2HYc7aPwdaA+e6RF6tF8CFyq6tYb0qAURwll4AYoD0k7wfYHJHiK8BoxsjenvTLQqvJSz0RXMDn/qIDTNbYXu/tFYalkHv2F6CK8lbjmK2jr4GVNVPDson0J/fHEUHEH9BWOqq9scC1Rh3X4lg3089SWZLogSsedvgFb83fNkr49GqGQigCWD6rYqJ4067Snvyi1STlC1hvCsjE+hHgDDBHn8G0WXto9buvhrWG+UwYzyQdMmueHFncPoB4c5dfLSFDxCtnWhOU9VMD752Zdk9qPbb4M0b+Q3j4Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521026)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BLUPR0201MB1778;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1778; X-Forefront-PRVS: 0923977CCA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(377454003)(24454002)(83506001)(42186005)(65956001)(86362001)(65806001)(19580395003)(66066001)(47776003)(19580405001)(36756003)(110136002)(4001350100001)(189998001)(50466002)(3846002)(6116002)(586003)(92566002)(50986999)(76176999)(15975445007)(77096005)(2950100001)(54356999)(87266999)(65816999)(2906002)(81166005)(4326007)(1096002)(5008740100001)(5004730100002)(64126003)(230700001)(59896002)(33656002)(23676002);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR0201MB1778;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjAyMDFNQjE3Nzg7MjM6TlZTV01XWCtwb2V4UjlQQkJRdXN5aDgy?= =?utf-8?B?S1Y2KzRPUHYydXU0K0NwUXU2WXBuaDVUNDFicW1QV3ZkZzdkZFBkQWhvN1I1?= =?utf-8?B?QWVyTmZBYm51NGV3QlFtNnh6WUI4U0g1L2oySHp2OFhtakNmZ2YzaTRwaDRv?= =?utf-8?B?d2F6WHpBN0RNa1gxWExhUVYwUk1JM2h0bHA3WE9lT2hiOFBObHArN2k5YU5S?= =?utf-8?B?WUFtUFMxMHpvR1V6dllHNy9hVzdxaEY2clRjdW9hUDBrbjl4eEpPbHcwWVQ1?= =?utf-8?B?VDNLSVdpZXVqaEVEdzJ2amhQTzFKczVWY1NzVkFNRVg3aXErSHFkZVBlNTJF?= =?utf-8?B?cjlhOWY1YUNXb0hUYWNtZC9Td2N0SElrYUhHQW9MTjhCdnhOVUEyNE9oYURl?= =?utf-8?B?b1E1YUd5SWZ6TlFGdFc1Skh0VXk5MkdaM0NwejJneDdEOXF6SDFQVGUvZmFo?= =?utf-8?B?TDNIbExFTVA2MklEOEdnckFKWllOTHZxRTZ4WDF5ZjJ4THRydjdwanplbVRW?= =?utf-8?B?TEsrRnQrcVYzaXBJSEljbFRCVXk4L3lYUCtzVU4wQWd5OW5hT0txN0lPUVJ2?= =?utf-8?B?RnZIa2k4Wlk0cG8vTnRheFFJc0EraFZlZnczcENaRDROaUlJOTdvdWxFeFpQ?= =?utf-8?B?ZVFkTysxRkhkNmlzeTRhYmYwTDNoaEpkc05MNGNmYjFpTzhoaFFuV2E1dFIw?= =?utf-8?B?aHJ2LzFFTmpkWVM5SllaWjB4QzRsM1hDOVhKZEhoN0hIS2hPdENTRytiTlpj?= =?utf-8?B?YnhJV1ZUYkdMY0x1L3Uya3lBVkVVVGNkUmRMUnRVYVFoTkwwa0c0eTYyQkZa?= =?utf-8?B?djlDTTUyNm9sYkVCSVlYZHlma3NMRVpMMUxCU0RPQ2xJYWdTNjRHVG5CTW1L?= =?utf-8?B?Ky9mQlN3WHBMUmtLMlozcHBLTlNWQTdXakFGQjV5bk01K09hNzJjMDgzclFP?= =?utf-8?B?U1FNakNQYjZGekFZcXRybjNyNW8zalU5WVIyUUk5dnpRemcrYXQ5N0Jham1R?= =?utf-8?B?OWhSN3daaGhNRE1FQW5jOVVWZ1VYMkF1WWxpZ3JhTFFvQkNHMzhaRThFZjNm?= =?utf-8?B?eElOT0hrTEU4NE1aaUllNHYxZmhhd25Vclh5Q0ZEVUJWWE5wU1M2RkJ5eXBs?= =?utf-8?B?VE1DNFFINSszTk96OFJ3TGZCT24veWgvRHdsbmtaUXNQeDVPZ0xRYW03aUdO?= =?utf-8?B?U25FM3NUQWRLZEUwQTFEbVVReDFhMDlwZkluUnJrdFlCZVozRDJ3R2s4OWNI?= =?utf-8?B?ZjhGTWt1bFlvRUhubzl3WnFtcmVJV2thTFhzZzZIUUhYS3JGcmQzbzZmcjV0?= =?utf-8?B?YnR5VW0yUzloOFJMRHo5eEp5UUNDSnlGTitwamJ6Ujd3OG1hcnFQUXBRQ2Zy?= =?utf-8?B?Qnd3N08xOGFJQVRLNjJoNHE5UjJIeDhMRFIwcmpHWlBtQUtFeTlPRVhCZ0Ur?= =?utf-8?B?Rm1hVzVObTBuTnhSN1RGbTFRcUY3Z0tIY215Ui9KbzlBSUMzZDZDdVdwaEg4?= =?utf-8?B?YkNyZlVRPT0=?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1778;5:XUnYZlf8WflXpsSpcQqNKonATJDxrzWAyK674jAVy/eEccwTtb5B4eBHQTFM3RgfKpFcNDIaiMleqJor1ZURuFi5eQrkxsymIkZyaqgixXU3B4rbf18dzklnV9kv53/iJ1OIeOesaEEJbWlB+oJdMg==;24:tYr47eXytbuTAThZh0Lap7zjZ6tRuIRKedX7qg1fK8mMS/8BjwHDuU+Lb4MvkLkHy97syOFMReT0fzxf+fx9tDChr31PnrUqgo91spRzsuc=;7:/ZUN6wXWhVD1fEmKmzVqKuTHmOSK3cwe8GLLKj0iJC3NssqpOoULkbyaTRGL5usdI+8YHIxG287p2+h3I5wbqnoWcdzzFXBpyea72U61rjIlCbYGMDI+Mw5Y8hK+pKAx/zozAALrjtXXyODcRPBN0eb54ahPK0UEkk4W0fdTZm4VLeF5b7aiyf89ArHpfv/a SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2016 08:35:41.2989 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0201MB1778 Subject: Re: [PHP-DEV] [RFC] PHP Attributes From: dmitry@zend.com (Dmitry Stogov) On 04/24/2016 12:34 AM, Yasuo Ohgaki wrote: > Hi Dimitry, > > On Fri, Apr 22, 2016 at 6:13 AM, Dmitry Stogov wrote: >> I would like to present an RFC proposing support for native annotation. >> >> The naming, syntax and behavior are mostly influenced by HHVM Hack, but not exactly the same. >> >> The most interesting difference is an ability to use arbitrary PHP expressions as attribute values. >> >> These expressions are not evaluated, but stored as Abstract Syntax Trees, and later may be accessed (node by node) in PHP extensions, preprocessors and PHP scripts their selves. I think this ability may be useful for "Design By Contract", other formal verification systems, Aspect Oriented Programming, etc >> >> >> https://wiki.php.net/rfc/attributes >> >> >> Note that this approach is going to be native, in contrast to doc-comment approach that uses not well defined syntax, and even not parsed by PHP itself. >> >> >> Additional ideas, endorsement and criticism are welcome. > Nice RFC! > Attributes are always evaluated, right? i.e. No INI switch nor declare > to control behavior. > Just making sure. Attributes are always parsed together with PHP script and stored internally. Then you may access them through Reflection*::getAttributes() or in C extensions through native API. AST in attribute values is not evaluated. Thanks. Dmitry. > > Regards, > > -- > Yasuo Ohgaki > yohgaki@ohgaki.net