/** * Pull the public methods out of a class * * Optionally, don't get the inherited methods (default), and mask out the magic methods (default) * * @param string $fqcn * * @return array */ private function extractPublicMethods($fqcn) { $class = $this->reflector->reflect($fqcn); $methods = $class->getMethods(ReflectionMethod::IS_PUBLIC); $class = $class->getShortName(); // Filter out inherited methods && magic methods $methods = array_filter($methods, function ($method) use($fqcn) { return $method->class === $fqcn && substr($method->name, 0, 2) != '__'; }); $signature_methods = []; foreach ($methods as $method) { $signature_methods[lcfirst($class) . ucfirst($method->name)] = ['class' => $class, 'method' => $method->name, 'doc' => $this->decipher->process($method->getDocComment())]; } return $signature_methods; }
/** * @test */ public function it_returns_null_for_short_and_long_and_tags_if_none_are_provided() { $this->assertEquals($this->processor->process($this->buildDoc(false, false, false)), $this->buildResponse(false, false, false)); }