Access the doc block of a method
... $method = new ReflectionMethod('MyClass', 'myMethod'); $doc = $method->getDocComment(); ...
A note from the php.net documentation about getDocComment():
In order to retrieve a comment with this method, the comment must be imediately before the class, function or method, start with /** and end with */
Does the method have the annotation?
... if (preg_match('/@my_annotation/, $doc) { // Do something interesting with $method } ...
Putting it all together
A function that dumps the public methods of a class unless they are marked with the @ignore annotation:
function listMethods($class_name) { foreach(get_class_methods($class_name) as $method_name) { $method = new \ReflectionMethod($class_name, $method_name); $doc = $method->getDocComment(); if (! preg_match('/@ignore/', $doc)) { echo "$class_name.$method_name"; } } }
Aucun commentaire:
Enregistrer un commentaire