Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92624 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 40440 invoked from network); 21 Apr 2016 23:44:44 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Apr 2016 23:44:44 -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.114 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.114 mail-by2on0114.outbound.protection.outlook.com Received: from [207.46.100.114] ([207.46.100.114:35324] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 44/1C-14036-AE569175 for ; Thu, 21 Apr 2016 19:44:43 -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=NNvWCzsm7CzJlA8nPT9Su1gQAzzSad7fbjA9mKEc+G0=; b=TNyxWBrRqP0Sa0EabyhbFeXkm6XiWjIruDKRggGGV2CLsjrq+DGeE8xOb56fHNR9+GOR9fjoi9At/hhiFM1CQGRxHBVJv/5UruAI5KxsdnAQ/K3u0e/m3VeSJj2yON35AJApEs6P6/XWcmjSp9d9jl/UigGafldsuo1Bf1W4l3k= 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 BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) with Microsoft SMTP Server (TLS) id 15.1.466.19; Thu, 21 Apr 2016 23:44:38 +0000 To: Dominic Grostate References: CC: PHP internals Message-ID: <571965D1.9020102@zend.com> Date: Fri, 22 Apr 2016 02:44:17 +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: multipart/alternative; boundary="------------060702000207070306030806" X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: DB4PR08CA0032.eurprd08.prod.outlook.com (10.161.12.42) To BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) X-MS-Office365-Filtering-Correlation-Id: ade23492-3303-400a-8ded-08d36a3ee738 X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;2:wrPii5ESwcY+gxqqJxjv1zSElrAni1vKWAAjHVZisSKYDOPn5UxnoFzAVQhZJey0rs0MR8TBVkIzBn2LTGP6V+kxDlLcYPqQ+j880ZpdkmtWhDmoxF5VNO47tujLRtfxoWYJkt+pdHNQH6ptO9ophT1oQjsxhQMBoDJqlcmD7SXEGqk+mhFb+newZfuxoxIC;3:vYqZJUAl8AljpaSrbIaVyQWITx6Vj0e0dae6+S8eDgrLOk0/CFPFLo4N6lwUD+vbXUlWD4Ay7b2XgDk8oqOq04XGnSSrcb7PJBhj3n6oromRdcmTRSH9p/3Fcy2zwcJk;25:SkFrIsgGAdSq4hS5e+yc4ABKRY2mfJI6jEmh6k8ezfo+O3vpAhOp6Qd5ohVSC22pMBX4gJDb55WD34g29Y30Au3R0WMEpX0kndMQsBKA3a8JY6ivcEoK1Y9A9GRFlks/NDjFC1UsoDHAZaAQUicK7er8enTQJtklKMP2Qt1QOYsJ73wNKpPDFALTNrwtrTKAb5Y9SjkuEuXdVy5ynzuKx1UjfTalU2elLFfdS4Ccwgk9f4DNX42Ra+6UA7uh3FuR0MManaOgztI58nkETcPRg5Rq9oTGGlHzuPElVD3bUHiGpAFqDHoyx4SyIPMYU/JUFK2FofvcnyEYvGCppLJMmg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1784; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;20:oF37dlYxUwlXqbxw34BiqUT3vcvpy4yTVNhwol7liULAW+TXM5WCfiCKwEReAjt5N6I9SAagL323xwNc0+H2mgqhj5m6X/3V+red2QzCbyvtgnSc6ANSaPN4tT0aueMx/c5tA57tLMYDlPmXGMODuRUSvoTys/B8+8JUGuKRw02iYfv4j3YnTpAraTAvAHGP8kIgGE/oZxf+Qq1eyXas078L0dcOVUPSPDG1fbqEGFLIvzlIi7YSyo8wqsvtou7DZyYANOCHeQRUazk74pbHUqxtGVhqXUybhrtJ36Aj99rXwBwiff5Yuggs64zVMSyXDat9rZF6HWfQc5GpjtdNMkPkkhrlt9ESIGONefOXGb6mSmp1n6v+o+lENpNnvRNWK1sKqwDAwmRmtHWxG92usbyJ0IuO5jeT1AsdLR6G7OBn9zo2tg0jriTuPlLnZV5jaSArQpwMHe+h+ONzDF253NLZ2tHGNPvrNkZ4Fw6dfHOBuVU76Aho1TK4FjlUaPh6;4:gqAe6bUBtm8rA5r2ss1Utv0nQjOHzs8cqpnHzaXL60SYwltLn+n6XZp5hd1pH2oGoBnZPsvQhPDQxNCIVKkyTcKZujER8PVaRr/EHawmg3zoHdLe+ON4BAJeRRFufqq0fvo3ce8SSGSy58+YHKZZERc/u7uF4HJoD7PUXtB2upA9x9u/ULJtZQ6i1dyRxxh2oVAeT5HwNJwdXbRe7N69p8UZEMTu8PqL3os7Q19epaiAjAs7JsCWoOAHVk8YJxOoMv0dnlO1j7cOqgwgYqds0vo2WEHIdc7DuMt3x5dke/GDDzy63FI7MWHV9dorZKJQ/urZHnjOoiFqq/OWWZXnT6E0MpH5Mb34EQgafYD/cJ7ErNXNiP73Gi3LXNZZb+xZe8ov9MviGgcPngf4lDi/ZQ== 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:BY2PR0201MB1784;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1784; X-Forefront-PRVS: 091949432C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(377454003)(24454002)(2950100001)(19617315012)(66066001)(65956001)(3846002)(4326007)(110136002)(84326002)(36756003)(92566002)(2906002)(6116002)(42186005)(5004730100002)(189998001)(16236675004)(81166005)(86362001)(19580405001)(19580395003)(64126003)(4001350100001)(33656002)(1096002)(15975445007)(65816999)(54356999)(5008740100001)(83506001)(50986999)(87266999)(512874002)(586003)(99136001)(270700001)(77096005)(76176999);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1784;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0201MB1784;23:vfPd8Bw1YQGhvD+Yn8aVyOnnG/qkO70Do9FHUtN?= =?us-ascii?Q?A000wKKFsBYPp0XXiLQ9yMFwTf83+93msNvb9Qrox/igUwOe6P4kOYbGjHcI?= =?us-ascii?Q?RbFf0VbpfD9PKguFo08Sz8qcnTL7+6k89SJjgxGXegEsyZ6dUHn8zL1WhKMm?= =?us-ascii?Q?hjmMXjBclaC4p8/KLpxHmD3wc9OPGtU/uygFmf0KOaCEL4LIlNaqOsTQKQxo?= =?us-ascii?Q?COMlXtgWchWO+PUDNQLWBFGBm0mMXIsUDtmO52w57MHr4sOPErGk71CdFjXs?= =?us-ascii?Q?nmUBv0pOwob68RoFmD6JC59MVFSTT9sYQXiJPdiGxdwSOiAxw/f0ogpXI5s+?= =?us-ascii?Q?nZy2XeAQiORFtHgbZEnyoajIXIauw9LStOsv6mDeUZHMCz35WSP+py+g16nf?= =?us-ascii?Q?4e356NzAJpLAV2tFsGNrZGxEGL1C/WFZ4DmCe/Kn6nFygJ10PD7y2IuV2Ias?= =?us-ascii?Q?L+ZWwAHc+tCi6ll2KhYpltxExqjtUe95Kw8sLMZuZQ8psYmXIrbqrB1BoXKS?= =?us-ascii?Q?slbp8A78k7oxcC0TIG3K1RRgP6rp2MOAx+yK3wFT1ouiWmLrr/oaQNdaual4?= =?us-ascii?Q?zCG8yzp5IN1ZAHOmFUkLdTvQyKzQlS3Ls51WLVaKvFVR4yO0LLOni8lmNhXl?= =?us-ascii?Q?qc+YMIRWfO4MynAZPAyjxHBoKIMoLOp3FWpxWeh3HCc2S8LE/HJaxIymq+em?= =?us-ascii?Q?BwXi63YPCdHeJyH0tbR6OLUFvBHUnbnGd5X2fnBXNj/bU71c8O6z53KuoLH+?= =?us-ascii?Q?bCqliMmSJrBpRH5coD4QOmI3c02uF6mi3yiJpKLfTEOqj4YPkMM3UKgszzCs?= =?us-ascii?Q?iAQyRjlRVfjzAfGNDmAJOBc9eEUMyphI2DQEv1Pn/LfmzRbXitp8KgLeMq/T?= =?us-ascii?Q?RPgwHAMhm8OLTVQfiVmwdNYvGIyTOOvYCj9LL6OCnhC3JJX6do675cEufFdq?= =?us-ascii?Q?jG1+2lOHPnjlHYMjFqLFLMomZ1w4VtAnNaOjiwwQpgssN7Ab3mFdaCCHKdZk?= =?us-ascii?Q?02tqG7Qa0Yiu3JrG157QugOLpdJWPyr0Rm4w43lpymEdQoMAQ2rb8B2zvWrG?= =?us-ascii?Q?TQd8ANSrlJcc/fJ2ltkPAyEw29jIW9iWgwam9XC2Re3RF++tTsw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;5:EGaMeTFRLDaV/XYKknGeLgPkmGkPmyWhe7stIF8M5lyyB5NSJGrPyAVc8zKsKNOjN5/U1zPdzNZ2fIasGeYorHq9zRLXarZwyY1V1Ad9CW03Gg3WL9bz4QvaGVrkOnifOh5qen6gJLtoVNbAWbimNsfQUm++D5hsjp0vJ6LZT+4mwM2ki3k8nz4AY+rt6yK4;24:6b9GDlgSOCCHyEJlbm0zVfgttJTOVeeT0QH3LMF5H1lkDpsur/TKY03hWNoEfyUwpDrBbbjH+73wzZMZ6UvqtifwTAG7874riQXWM/yblGc=;7:UGMMo5skk1nYbXHVox/EUj0UE4EPUME19Nt48lUGQDqRsE7AuB5BpXEA2wptXHEvQkAzw+ROWyYimkp8q6a+QsODCMKIUFyjiOB6VhAyPk+hLGm0yezNfYcQCFjZQ3TFs7MbVTb6Z0l9VnQPKhWDKPq5QlR8ZJfHgdLjGGFlEshP9RWPee6K+mhnuYas6PAUQ0S8osXZJKVTKPTplcmUcJiEsqKdCdmxs/IzByPsM8o= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2016 23:44:38.0381 (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) --------------060702000207070306030806 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 04/22/2016 02:16 AM, Dominic Grostate wrote: > > This is amazing. It would actually allow us to implement our > automated assertions ourselves, as opposed to requiring it within the > language. > this was the idea - to give a good tool instead of implementing every possible use-case in the language. > Could it also support references? > > <> > function foo($a) { > > } > yes. "&$a" is a valid PHP expression. If you plan to use this, I would appreciate, if you to build the patched PHP and try it. The early we find problems the better feature we will get at the end. Thanks. Dmitry. > On 21 Apr 2016 10:13 p.m., "Dmitry Stogov" > wrote: > > Hi, > > > 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. > > > Thanks. Dmitry. > --------------060702000207070306030806--