<li>Detect classes from files, folders, or raw strings.</li>
<li>Parse PHP tokens using `token_get_all`.</li>
<li>Extract class metadata (name, namespace, path).</li>
<li>Retrieve class properties, methods, and functions.</li>
<li>Extract function/method code or raw bodies.</li>
<li>Read namespaces, use statements, and includes.</li>
<li>Extract and remove comments or PHPDoc blocks.</li>
</ul>
</span>
</div>
<h2>Usage</h2>
<h5>Init:</h5>
<div class="code short">
<textarea readonly>
include dirname(__DIR__) . "/lib/app.php";
include get_lib("phpscript.PHPCodePrintingHandler");
$folder_path = "/tmp/php";
$file_path = "$folder_path/test.php";
$code = file_get_contents($file_path); //some php code, encapsulated with php tags
</textarea>
</div>
<h5>Get Classes:</h5>
<div class="code short">
<textarea readonly>
$classes_by_file_path = PHPCodePrintingHandler::getPHPClassesFromFolder($folder_path); //Get classes from folder - only 1 level
$classes_by_file_path = PHPCodePrintingHandler::getPHPClassesFromFolderRecursively($folder_path); //Get classes from folder and sub-folders - all levels
$classes = PHPCodePrintingHandler::getPHPClassesFromFile($file_path); //Get classes from file
$classes = PHPCodePrintingHandler::getPHPClassesFromString($code); //Get classes from code
$tokens = token_get_all($code);
$classes = PHPCodePrintingHandler::getPHPClassesFromTokens($tokens); //Get classes from tokens
$namespaces = PHPCodePrintingHandler::getNamespacesFromFile($file_path); //Return array with namespaces names
//Uses
$uses = PHPCodePrintingHandler::getUsesFromFile($file_path); //Return associative array key-value pair, where keys are use-name and values are use-alias
//Includes
$includes_components = PHPCodePrintingHandler::getIncludesFromFile($file_path); //Return array with other arrays like: array($code_or_path, $is_once)