Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92715 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 5187 invoked from network); 25 Apr 2016 08:42:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Apr 2016 08:42:24 -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.104 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.104 mail-by2on0104.outbound.protection.outlook.com Received: from [207.46.100.104] ([207.46.100.104:2976] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 09/01-00233-E68DD175 for ; Mon, 25 Apr 2016 04:42:24 -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=9ORhV5faK3OQd5qzkWqE7B6fa+e9OmZYhurCaM9TLlM=; b=z1kTi+IQNKDhThS/yeZ4Pyn+EkjZIHKcUxTYiwx5Y7tiNTT3KG5Y0dCLCSkFvYR57VDYBlfTrvPz+gLbS1g80Ju4nuY+Vp993wEpS2kRS6ckvG9P/xf16Lp7/bRXWHo6IPRapaEUMm7SHAg8DtRouY+ElixyE9weCRGQEYbRIjE= 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 CY1PR0201MB1787.namprd02.prod.outlook.com (10.163.55.20) with Microsoft SMTP Server (TLS) id 15.1.477.8; Mon, 25 Apr 2016 08:42:17 +0000 To: Dan Ackroyd References: CC: internals Message-ID: <571DD85B.50500@zend.com> Date: Mon, 25 Apr 2016 11:42:03 +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: HE1PR06CA0027.eurprd06.prod.outlook.com (10.162.181.165) To CY1PR0201MB1787.namprd02.prod.outlook.com (10.163.55.20) X-MS-Office365-Filtering-Correlation-Id: 290bb280-076e-422c-fb83-08d36ce582d9 X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1787;2:l8z+jk8xpFLDCyxJs/q4LBZS+CzHUEbEKLHSZQ4X/rRhK+H5rN3mg6LjLJKALGSvaxxXiNUnVD3rCk9Q9qFydOPt+TlVAGMsmlkMvjWwNKkMmFumBkWtiPgbpFVlSX7tCMt7S0dt3LG0V74jsw/+t24G1vaMwWqvzyoU1lbOPEfHwb3eXNKzTnEl8TEA3PA6;3:7HOrOZkDUdbzmFEaTmPhcJy4XKQQ9rkjHhAC/0W6hT7DVRZpHHwDfb6YLRhReL5UZjboD1y6sN0zxy3GCOmdIIB/tb703xDZSplUR95gDKhSp4HrZKMcfN16a+keuNyL X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1787; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1787;25:2hb6MeyrVhuytVxovWCZqYQjED5EQ/kFubY/mSoNZ8Q9iUgZatbox/iktXOM3kWbd9k1hiHxl3nRymYUIowGctkl3JK7wYzvng4Pjb12GlP2bMM6FV1plgtXmjv0E5pvzrZMbZ/DT+dBwxsqRx4/2Y4cnmHWBdLjkTMK2CPFxCTcA/PWrb5J3Bkn7DbizDb6AfE+/C+kTnC0orV4yYtkV6OhHCiIR2PRMWWZoH3nEKDY+jaL2a0Y2RvLPsQfQpU7Vfnk6/T7hj8JbGLXO236oJgNepa8W6XMSyub2R97kRU86YGy3kCUgmCi8uG+im51tOJK5JyEch+XU2dX7lb1V2ikG+B/3e4forARPCDhwgDRHCEZkHYMiaqggwLFMgGGTQFw5U6McNcGqDXZ2N2K+rbZ6zHZ+ijgeYm3Uz56W8TBvqmKdle4xyoh/y1PPmqgLNnYzLfMjesr2nKWBTn6GDm3cpyW84KCq+m0QgKYNAGF93X2bCPzuBdXo12WMtrEiNGbnmUohUqoAjFYnLC1XGDgP7Jcgm2MacXUE1TVPzEj7GgnQuTDY3ttDbibOGT9UTqaUmgQ6jBpFVRrwWlwhh0rEWi8tI5Bm6I1iqlEhPvRfRnJIHVE3kXv6aT8Soh+J1YdfyOAlqmc0YGuA5i9/l1vRpp9TMXIXxllUGdZ0cg= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1787;20:L0HzaU1rW+2LCnJLDHoPArwmJZjlV+VeqaBXzVXp9WmYK9P9pX33LEcc2P1uncyqCt3uP9oC2IPzrfEEPBNk8p51xTxyQT89avETazXFLWFykFubpxTFGwTSODAhyY7PnfW9uNrEA4lTzYYIJqtJwI1C9/e3X35Y95ZTjD/7ijXXyvMi7e0V/6c97E2HITJhOD2a6hl1SLNyBX8lh2oOvIKZu4izGFvwEOrO3nKxJZB+fnjSWqgC2MZf9U30/ex/8ZR/VYIDKk1deibB1NrMYXQ8dETUmQIiCQfCyENlNnqRyWMQWZ7yRvBa/pbuCjYbePXui9HyMBm7zVnWK+NhCrN/x6l5H5pZ4Q7eP9XkiouPuug7OsSnKhHn7q/qjxm2Z9Mz2DlB2tjoy4Iv+3AsbTGPvCIwp03YQT2T5rtwIjQpswuYJavcqYGcWxVNhhJylOH2FVO27xFAJZVUivA9IvStdZlqd7Ewy8X/qCDlTF7+3X/alVxs9NbS1Yc8QjOs;4:f3cz2qZ6ZoCqnUyVEjBiMJf4zv9+trWrIBLR8WRwpYzlVWfTY2AlsJuFEkbIwLxgXfShPER1u+k+GcYwgSokUz2Y5MbdH6HaJROtayjahCp+BSShi+psuLckFFu4du1Jwp/9f/OkUXTeAUeEIbH9RE8n4N08mtr1E1lOIIuaZf3Aw9zJo38r64K7sYoNWBqSXH8jPuUSS47kmTRW+WHGOTD6KzsGuQJpc5Q7am4tGaxsy88vuo4punLD9zuc54dx3WIFSM1keYB6Ik92K+efszVEak9eymza15miaHtTvI+k2uQCK6IBdGWEA0iQmRj4vT6w8YE50bP0yp+JYrDvR0usHmW6ivMoMK3D4rfZIPpudeHyQfXFgY5FLCszglV7dXMrdk1S8cPYdXSiVc5GfA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:CY1PR0201MB1787;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1787; X-Forefront-PRVS: 0923977CCA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(377454003)(42186005)(77096005)(230700001)(92566002)(5008740100001)(19580405001)(19580395003)(3846002)(1096002)(6116002)(83506001)(47776003)(65806001)(66066001)(65956001)(86362001)(4326007)(5004730100002)(586003)(110136002)(189998001)(2950100001)(4001350100001)(65816999)(81166005)(54356999)(76176999)(50986999)(2906002)(64126003)(36756003)(33656002)(23676002)(50466002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0201MB1787;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAyMDFNQjE3ODc7MjM6enBtQ01sMGtuNGJORUU2eDc5MXdkWUlm?= =?utf-8?B?cERwajc0MXc5dVBoNUZrRm9nU09hVDdsc1lrenFzQWpXNjRISytrZTVUUDZL?= =?utf-8?B?c21kd0ZFYnVCK0NiQVgvV1J2VVY0c3hUTXU0SXZkRy9OT2VLcGNCaUxWbnk4?= =?utf-8?B?MU52b241a1RzbllQVFdsRHlRclVuMFVoTEhEZzExV1dNeitHMGphUGhDNy9N?= =?utf-8?B?NEVycExTS0ozQjN1R3dMNnVkbjBwMXlYU1VrNkdFQVdrcHNWUGgwZVowVnBY?= =?utf-8?B?dHdUcGU2UWMyNmRYZlY1MWJoU0pVYVZIanhnRmdGTzJMREpQZFZCUzNwaHh6?= =?utf-8?B?YkZhR2I5MHF6K3RxWEtmYm4rc1JQbmFNSjgxWURzanRhU2ZLQlE2Yk40dHdO?= =?utf-8?B?d1MyVENVVVpEcGVlVDlSUXg4eFhPc1JTTVNrNEVoOHRXaVNpYitnbG0vS2Q3?= =?utf-8?B?NFBrWHB1WEowLzJpeVNrUFhNUldVelFuOWp2YUx3QTNzSFZuZnFSSHIydjRa?= =?utf-8?B?L2QxbUo0ak10ZTFnbkhIRU1OaTB6WFZGalJRMFFONUdMV1h2Nm5wd2pna1RP?= =?utf-8?B?NXhaSzEvT08vWlplZmtzTjVpaUlVYmdDMXl6RmtqaGMrUzAwbCtCMkVpaG0z?= =?utf-8?B?d2c5cEFNM00yV05uOGJtTnpRYUZ3REN0RnI3aU03T21Iem1SL21pVVA4cUpT?= =?utf-8?B?UXJ6dXJTTER1a3M0UTlDZmQ1bTlTTktKbGlEck5mVFB3WVhvNERZWXd2L2xt?= =?utf-8?B?VU1KcmEyaDNpTTJUdzhrU2MxdHhTUDFjSXVveTNGY3BlcldaaDNqTDM4SVZh?= =?utf-8?B?Q2xpLzFCWlBmMTVZTG9jWkdFQjZXYXA0Sms0L1FZRTZ3QXFONkhrYzdUZ1Yz?= =?utf-8?B?OU05b0J0ay82WXNudmloTWh1TG9ibnpkSzhnVldCb2xSdkU5RlFhZEJVR1RN?= =?utf-8?B?RkcyYXU5VmF4dTdXWXJ4VnlESTdVa1BvajZxQ1pER2xxWkV3NzI3TzkzZktH?= =?utf-8?B?OVVEZFhCYWtEMFNhNjg5VkRCRG5SYmhZZVQvV05RSFNSanY4SWdJZTB3V016?= =?utf-8?B?NFBJbXE0NGo3MEtYUGRTamtkTEQ0U3hyYVdGbHBPRzA3Vm9ZSS9IT2prSjBh?= =?utf-8?B?YytVSVUzNmZmS2xhQXlmaXR6ZnA2ckFwY0hFZzJISGJyenJnMnFtVzQ2RE1Q?= =?utf-8?B?eS83YjdzQldhQU1UamJ2ZFF1L1lHVWN3TlhnSkRYNWFxR29ZelZTb21QMVhQ?= =?utf-8?B?cVp0YnFUT1BUZXpja2VoTGJMMm04TEFldXgxaXk3V1hOTTZVTDA4RmVjeWZ1?= =?utf-8?B?bzZZQnNUcGhUWFBiVkQ4aTFRTHBMaHRHeTBVS1BCcFc0cnd6N3NsYTFrdlN4?= =?utf-8?B?dHhZdGppQU51VnZDQktuZW9ncTEwRHhtVDFlT1QrWUE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1787;5:XSE6ldJHMRfpDtfIBBwrB8VxC4v+721VdBXpX+ery1ifQ7VnmrXv8c1frJsH5Nhwjm31ZbmRR3DPrOZZ9K7XVSKJQEq1ZeneaBzM49lI2MpmUNb0qo7ntT9RHcqoB+djs3vgm3KlCqpw5epeKlC+oQ==;24:esoECTS5C+EP5QdGrUmm7710dW8Hz7dkeNq39FWIWEhcOLTz9xw2lHN84gCe/IHkaAox2igIEnWRF0TifNkxhf/1AjrZuWb6i6mkb9sVEAY=;7:ZKVjNrFMBNaeKNB4NHX//5lb8PrT8z65hv7jK9OebZ2ig0Q1ElrUWWI+QhhO3ulFexSL6cJeeerD01nD1ermGtNBpWlKiTcJoY56H/xxDTzk0sIelHOUdWRF9LCs8zSxlOBg3J8LqXE4OP7JWpQBnw4BUq8V/diCFvhjVY4jt2pIlWfEIU+c+SBmOwNWC0RB SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2016 08:42:17.8162 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1787 Subject: Re: [PHP-DEV] [RFC] PHP Attributes From: dmitry@zend.com (Dmitry Stogov) On 04/24/2016 07:03 PM, Dan Ackroyd wrote: > On 21 April 2016 at 22:13, Dmitry Stogov wrote: >> Hi, >> >> >> I would like to present an RFC proposing support for native annotation. >> > Hi Dmitry, > > Although everyone will have an opinion about the syntax, I think there > is one criticism that should be thought about; the chosen syntax isn't > future expandable to other concerns. > > People have talked about "design by contract" RFCs where annotation > like data is readable by the engine. The current proposed syntax > _could_ be used to store DBC data, but it would not be clear what > would be annotation data to read by the application, and what was DBC > data to be read by the engine. > > Changing the proposed syntax to be something like @attr(...) would > allow it to be expanded in the future by adding a @contract(...) > construct: > > @attr(test($a + $b > 0)) // This is attribute data read by userland code > @contract(require($a + $b > 0, 'InvalidFooArgsException')) // This is > DBC data read by the engine. > function foo($a, $b) { > ... > } > > Making features be compatible with future features would avoid a lot > of potential pain down the road. > > cheers > Dan "@..." syntax can't work. @ - is a silence operator. < 0, 'InvalidFooArgsException')>> - this is not really worse than your example. I know, any syntax is going to be loved by ones and hated by others... It's not possible to satisfy everyone. Thanks. Dmitry.