/** * Checks all phpDocumentor whether they match the given rules. * * @param \phpDocumentor\Reflection\Events\PostDocBlockExtractionEvent $data * Event object containing the parameters. * * @phpdoc-event reflection.docblock-extraction.post * * @return void */ public function validateDocBlocks($data) { /** @var \phpDocumentor\Reflection\BaseReflector $element */ $element = $data->getSubject(); /** @var \phpDocumentor\Reflection\DocBlock $docblock */ $docblock = $data->getDocblock(); // get the type of element $type = substr(get_class($element), strrpos(get_class($element), '\\') + 1, -9); // no docblock, or docblock should be ignored, so no reason to validate if ($docblock && $docblock->hasTag('ignore')) { return; } $validatorOptions = $this->loadConfiguration(); foreach (array('Deprecated', 'Required', $type) as $validator) { // todo: move to a factory or builder class $class = 'phpDocumentor\\Plugin\\Core\\Parser\\DocBlock\\Validator\\' . $validator . 'Validator'; if (class_exists($class)) { /** @var Parser\DocBlock\Validator\ValidatorAbstract $val */ $val = new $class($this->plugin, $element->getName(), $docblock, $element); $val->setOptions($validatorOptions); $val->isValid(); } } }