DocumentationHelper::parseClass() 

\nn\t3::DocumentationHelper()->parseClass($className = '', $returnMethods = true); 

Get information about a specific class.

Similar to parseFile() - however, the actual class name must be passed here. If you only know the path to the PHP file, use parseFile().

\Nng\Nnhelpers\Helpers\DocumentationHelper::parseClass( \Nng\Classes\MyClass::class );
Copied!

| @return array

Source Code 

public static function parseClass( $className = '', $returnMethods = true )
{
	if (!$className || !class_exists($className)) {
		return [];
	}
	$reflector = new \ReflectionClass( $className );
	$docComment = $reflector->getDocComment();
	$classComment = MarkdownHelper::parseComment( $docComment );
	$classInfo = [
		'className'		=> $className,
		'comment' 		=> $classComment,
		'rawComment'	=> $docComment,
		'methods'		=> [],
	];
	if (!$returnMethods) {
		return $classInfo;
	}
	// Durch alle Methoden der Klasse gehen
	foreach ($reflector->getMethods(\ReflectionMethod::IS_PUBLIC) as $method) {
		if ($method->class == $reflector->getName()) {
			if (strpos($method->name, '__') === false) {
				$comment = MarkdownHelper::parseComment($method->getDocComment());
				$params = $method->getParameters();
				$paramInfo = [];
				$paramString = [];
				foreach ($params as $param) {
					$defaultValue = $param->isOptional() ? $param->getDefaultValue() : '';
					if (is_string($defaultValue)) $defaultValue = "'{$defaultValue}'";
					if ($defaultValue === false) $defaultValue = 'false';
					if ($defaultValue === true) $defaultValue = 'true';
					if (is_null($defaultValue)) $defaultValue = 'NULL';
					if ($defaultValue == 'Array' || is_array($defaultValue)) $defaultValue = '[]';
					$paramInfo[$param->getName()] = $defaultValue;
					$paramString[] = "\${$param->getName()}" . ($param->isOptional() ? " = {$defaultValue}" : '');
				}
				$classInfo['methods'][$method->name] = [
					'comment' 		=> $comment,
					'paramInfo'		=> $paramInfo,
					'paramString'	=> join(', ', $paramString),
					'sourceCode'	=> self::getSourceCode($method->class, $method->name),
				];
			}
		}
	}
	ksort($classInfo['methods']);
	return $classInfo;
}
Copied!