Re: PHP Annotations RFC + Patch
| From: | Dmitry Stogov | Date: | Wed, 08 Sep 2010 07:32:31 +0000 |
| Subject: | Re: PHP Annotations RFC + Patch | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-49580@lists.php.net to get a copy of this message | ||
Hi Pierrick,
I've taken just a quick look into concept and patch. It looks interesting and might be useful in some areas, but I see several significant problems:
1) Have you thought about compatibility with opcode caches? In case I understood properly, you store annotation as a HashTable of object. But life-time of objects is restricted by request time, so they won't persist in opcode cache and will have to be recreated on each request. It's a huge overhead. I don't have a good solution for this problem except for using arrays instead of objects.
2) I suppose that usage of annotation would be quite rare case. I don't think it make sense to extend each op_array, property and class with additional "annotations" field. I think it's possible to have a separate CG(annotaions_map) where the keys might be the addresses of corresponding classesm, methods and properties.
3) I think the annotaton syntax must follow PHP syntax as close as possible
- allow leading \ in QualifiedName
- use '=>' in arrays
4) I didn't understand why do we need nested annotations.
The first and second problems are the most important.
I don't like to lose performance of existing applications which don't use annotations at all. I think the concept must be redesigned a bit.
Also I would like to see an APC patch to check if the implementation works and doesn't lose performance.
Thanks. Dmitry.
Pierrick Charron wrote:
Hi Dmitry, As discussed on IRC, here are the RFC and the patch to add Annotation support in PHP : - RFC : http://wiki.php.net/rfc/annotations - Patch : http://www.adoy.net/php/Annotations.diff All your feedback and suggestions will be more than welcome. Thanks again. Pierrick (or adoy on irc)