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