Hello All,

I'm new to this list, so please excuse me if this subject was already
discussed, or proposed.

I've made an experimental patch to ZendEngine/PHP (5.3.5) to allow
native annotations (without doc comments), using the token @@ (the @
was already taken). It allows 0 or more annotations (with 0 or more
arguments each one) for classes, properties, methods, and arguments
for methods, like:

@@Annotation(key="value1")
class A {
    @@Annotation(key="value1")
    private $property;

    @@Annotation(key="value1")
    private function aMethod(@@Annotation(key="value1") @@Annotation2 $a, $b) {
        ...
    }
}

The patch can be found at: https://github.com/marcelog/AnoForPHP.

The annotations and their optional arguments can be retrieved via the
getAnnotations() method of ReflectionClass, ReflectionMethod,
ReflectionParameter, and ReflectionProperty.

I plan to extend this patch with some extended functionality, like
having PHP instantiate a given class for the given annotation. By
using convention instead of configuration, the name of the annotation
is the name of the class, which should also extend some PHP base
class, like "Annotation".

I'm basically looking for comments on the patch and the functionality,
since I'm new to the ZendEngine as well.

Again, I'm sorry if this post should not go here or there is not
interest in such a feature in the language itself. Also, if I missed
something in the code of the patch, because it's more like a
proof-of-concept than a final formal proposal.

Regards!


--
// I don't sleep. I coffee.
"Make everything as simple as possible, but not simpler." -- Albert Einstein
"The class object inherits from Chuck Norris."
"Chuck Norris can divide by zero and can unit test an entire
application with a single assert."
"There’s a lot of work happening behind the scenes, courtesy of the
Spring AOP framework"
"Why do I have this nagging hunch that you have no idea what you're doing?"
"Any society that would give up a little liberty to gain a little
security will deserve neither and lose both" - Benjamin Franklin

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

Reply via email to