DocumentationHelper::getSourceCode()
\nn\t3::DocumentationHelper()->getSourceCode($class, $method);
Get source code of a method.
Returns the "raw" PHP code of the method of a class.
\Nng\Nnhelpers\Helpers\DocumentationHelper::parseClass( \Nng\Classes\MyClass::class, 'myMethodName' );
Copied!
| @return string
Source Code
public static function getSourceCode($class, $method)
{
$func = new \ReflectionMethod($class, $method);
$f = $func->getFileName();
$start_line = $func->getStartLine() - 1;
$end_line = $func->getEndLine();
$cache = self::$sourceCodeCache[$f] ?? false;
if (!$cache) {
$source = file($f);
$source = implode('', array_slice($source, 0, count($source)));
$source = preg_split("/".PHP_EOL."/", $source);
self::$sourceCodeCache[$f] = $source;
}
$source = self::$sourceCodeCache[$f];
$body = "\n";
for ($i=$start_line; $i<$end_line; $i++) {
if ($source[$i] ?? false) {
$body.="{$source[$i]}\n";
}
}
$body = str_replace(' ', "\t", $body);
$body = str_replace("\n\t", "\n", $body);
return $body;
}
Copied!