*/ function writeDocFile($namespace, $docs) { $template_helper = new \Terminus\Helpers\TemplateHelper(['command' => null]); $filename = TERMINUS_ROOT . '/docs/' . str_replace(array('Terminus\\', '\\'), array('', '/'), $namespace) . '.md'; $rendered_doc = $template_helper->render(['template_name' => 'doc.twig', 'data' => $docs, 'options' => ['namespace' => $namespace]]); file_put_contents($filename, $rendered_doc); return true; } $library_files = array_merge(getFiles(TERMINUS_ROOT . '/php/Terminus/Models'), getFiles(TERMINUS_ROOT . '/php/Terminus/Outputters'), getFiles(TERMINUS_ROOT . '/php/Terminus/Helpers')); $tokenized_files = array(); foreach ($library_files as $filename) { $namespace = str_replace(array(TERMINUS_ROOT . '/php/', '.php', '/'), array('', '', '\\'), $filename); $tokenized_files[$namespace] = getTokens($filename); } $file_functions = array(); foreach ($tokenized_files as $namespace => $tokens) { $file_functions[$namespace] = findTokenPatterns($tokens); } $documentation = array(); foreach ($file_functions as $namespace => $functions) { if (!empty($functions)) { $documentation[$namespace] = array(); foreach ($functions as $name => $function) { $documentation[$namespace][$name] = parseDocs($function['T_DOC_COMMENT']); } } } foreach ($documentation as $namespace => $data) { writeDocFile($namespace, $data); }
function createPropertyDoc($rProperty) { echo "===`" . $rProperty->getName() . "`===\n"; echo "\n"; $docs = parseDocs($rProperty->getDocComment()); $visibility = 'public'; if ($rProperty->isProtected()) { $visibility = 'protected'; } if ($rProperty->isPrivate()) { $visibility = 'private'; } echo "{{{\n"; echo $visibility . " " . $rProperty->class . "::\$" . $rProperty->getName(); echo "\n}}}\n"; echo "\n"; echo $docs['description'] . "\n"; echo "\n"; $hasProp = false; if (isset($docs['deprecated'])) { echo " * *Warning: This property is deprecated, and should not longer be used.*\n"; $hasProp = true; } if ($rProperty->isProtected()) { echo " * This property is protected.\n"; $hasProp = true; } if ($rProperty->isPrivate()) { echo " * This property is private.\n"; $hasProp = true; } if ($rProperty->isStatic()) { echo " * This property is static.\n"; $hasProp = true; } if ($hasProp) { echo "\n"; } }