Yahav and all,
On Sun, Jan 6, 2013 at 4:58 PM, Yahav Gindi Bar <g.b.ya...@gmail.com> wrote: > Hi internals! > > In one of the discussions (about the "deprecated" keyword, to be specific), > it was been said that adding ability to read doc-comment annotation could > be handy. Personally, I really think it can be great. > > So, I've created an RFC that propose to improve the Reflection extension by > adding the ability to read annotations decorated in the doc-comment. > > https://wiki.php.net/rfc/reflection_doccomment_annotations > > What is your opinion about this? > > Regards, > Yahav. > Why does this need to be part of Reflection? Seems a rather odd place for it IMHO, since it basically hard-codes the functionality into part of the core that's not trivially extendable (at least $class->getMethods() is hard to override)... Instead, what about adding a SPL class to parse the comment. Something like class SplAnnotationParser { const PARSE_DEFAULT = 1; const PARSE_FUNCTION = 2; public function __construct($rules = self::PARSE_DEFAULT); /** * @param string $comment The comment to parse * @returns array An array of parsed annotations, pursuant to the ruleset used public function parseAnnotations($comment); } That way, you'd do: $parser = new SplAnnotationParser(SplAnnotationParser::PARE_FUNCTION); foreach ($class->getMethods() as $method) { $annotations = $parser->parseAnnotations($method->getDocComment()); } It decouples the implementation, and allows for people to polymorphically substitute different parsers for different needs. Thoughts? Anthony