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)

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to