> A more robust alternative would be something along the same lines that
> Doctrine uses: Make annotations actual classes.
Just spitballing here - what if both approaches were supported, but
class-based annotations were prefixed with a special character (perhaps
"@") to differentiate them? For example:
<<ArbitraryAnnotation("Hello world")>>
<<@ORM\Entity(table => "foo")>>
class Foo {
// ...
}
namespace ORM;
class Entity implements \Attribute {
// ...
}
$r = new ReflectionClass('ORM\Entity');
var_dump($r->getAttributes());
-----
array(2) {
["ArbitraryAnnotation"]=>
string(11) "Hello world"
["ORM\Entity"] =>
object(ORM\Entity)#1 (0) { ... }
}
-----
Again, I'm not necessarily advocating this - just throwing the idea out
there for discussion.
Regards,
Colin