DocumentationHelper

\nn\t3::DocumentationHelper()

Diverse Methoden zum Parsen von PHP-Quelltexten und Kommentaren im Quelltext (Annotations). Zielsetzung: Automatisierte Dokumentation aus den Kommentaren im PHP-Code erstellen.

Beispiele für die Verwendung inkl. Rendering des Templates

Im Controller mit Rendering per Fluid:

$path = \nn\t3::Environment()->extPath('myext') . 'Classes/Utilities/';
$doc = \Nng\Nnhelpers\Helpers\DocumentationHelper::parseFolder( $path );
$this->view->assign('doc', $doc);

Generieren der Typo3 / Sphinx ReST-Doku über ein eigenen Fluid-Template:

$path = \nn\t3::Environment()->extPath('myext') . 'Classes/Utilities/';
$doc = \Nng\Nnhelpers\Helpers\DocumentationHelper::parseFolder( $path );

foreach ($doc as $className=>$infos) {
  $rendering = \nn\t3::Template()->render(
    'EXT:myext/Resources/Private/Backend/Templates/Documentation/ClassTemplate.html', [
      'infos' => $infos
    ]
  );

  $filename = $infos['fileName'] . '.rst';
  $file = \nn\t3::File()->absPath('EXT:myext/Documentation/Utilities/Classes/' . $filename);
  $result = file_put_contents( $file, $rendering );
}

Overview of Methods

\nn\t3::DocumentationHelper()->getClassNameFromFile($file);

Klassen-Name als String inkl. vollem Namespace aus einer PHP-Datei holen. Gibt z.B. Nng\Classes\MyClass zurück.

\Nng\Nnhelpers\Helpers\DocumentationHelper::getClassNameFromFile( 'Classes/MyClass.php' );
@return string

\nn\t3::DocumentationHelper()->getSourceCode($class, $method);

Quelltext einer Methode holen.

Gibt den “rohen” PHP-Code der Methode einer Klasse zurück.

\Nng\Nnhelpers\Helpers\DocumentationHelper::parseClass( \Nng\Classes\MyClass::class, 'myMethodName' );
@return string

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

Infos zu einer bestimmten Klasse holen.

Ähnelt parseFile() - allerdings muss hier der eigentliche Klassen-Name übergeben werden. Wenn man nur den Pfad zur PHP-Datei kennt, nutzt man parseFile().

\Nng\Nnhelpers\Helpers\DocumentationHelper::parseClass( \Nng\Classes\MyClass::class );
@return array

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

Alle Infos zu einer einzelnen PHP-Datei holen.

Parsed den Kommentar (Annotation) über der Klassen-Definition und optional auch alle Methoden der Klasse. Gibt ein Array zurück, bei der auch die Argumente / Parameter jeder Methode aufgeführt werden.

Markdown kann in den Annotations verwendet werden, das Markdown wird automatisch in HTML-Code umgewandelt.

\Nng\Nnhelpers\Helpers\DocumentationHelper::parseFile( 'Path/Classes/MyClass.php' );
@return array

\nn\t3::DocumentationHelper()->parseFolder($path = '', $options = []);

Einen Ordner (rekursiv) nach Klassen mit Annotations parsen. Gibt ein Array mit Informationen zu jeder Klasse und seinen Methoden zurück.

Die Annotations (Kommentare) über den Klassen-Methoden können in Markdown formatiert werden, sie werden automatisch in HTML mit passenden <pre> und <code> Tags umgewandelt.

\Nng\Nnhelpers\Helpers\DocumentationHelper::parseFolder( 'Path/To/Classes/' );
\Nng\Nnhelpers\Helpers\DocumentationHelper::parseFolder( 'EXT:myext/Classes/ViewHelpers/' );
\Nng\Nnhelpers\Helpers\DocumentationHelper::parseFolder( 'Path/Somewhere/', ['recursive'=>false, 'suffix'=>'php', 'parseMethods'=>false] );
@return array