Я не смог найти недорогих инструментов для документирования всех vars / consts / functs / classes / includes в сценарии PHP, поэтому я пишу свой собственный. (Я использую множество сценариев с открытым исходным кодом, которые необходимо изменить. Кроме того, было бы неплохо иметь каталог для моих собственных проектов.)
Я объединил одну из них, используя строковые функции php, найдя все константы, затем перебрав каждую строку скрипта, загрузив номер строки в массив, затем include / require, затем переменные и т. Д. Это дает около 90% что я хочу. Однако, если бы я улучшил его, я бы, вероятно, изменил бы подход к работе со скриптом посимвольно, как, вероятно, это делает компилятор php. Кто-нибудь есть идеи, как решить эту проблему? Я не могу поверить, что я должен изобрести это колесо …
Я предполагаю, что есть среды программирования, в которых есть эта встроенная функциональность, но я старая школа и малобюджетный. И, да, OO и узкие функции устраняют необходимость документировать большинство переменных, но все еще необходимо видеть дерево include / require, глобальные переменные документа, видеть, где используются все экземпляры класса и как. И т. Д.
Следующие инструменты настоятельно рекомендуется для создания HTML-документации для вашего проекта, просто выберите один из них:
Вы также можете настроить вывод HTML, если вам нужно, или выбрать шаблон, созданный сообществом.
Похоже, лучше всего использовать встроенный токенизатор (http://php.net/manual/en/ref.tokenizer.php) в php.
$theTokens = token_get_all(file_get_contents($currentFile)) ;
echo '<table>' ;
for ($i=0;$i<count($theTokens); $i++)
{
if (count($theTokens[$i])==3)
{
echo '<tr><td>'.token_name($theTokens[$i][0]).'</td><td>'.$theTokens[$i][1].'</td><td>'.$theTokens[$i][2].'</td><tr>' ;
}
}
echo '</table>' ;
Это идентификаторы переменных, но требуется обработка для определения массивов, идентификаторов классов и т. Д.