Как найти неиспользуемые функции в проекте PHP
Спасибо Грегу и Дейву за php-readfile обратную связь. Это было phtml не совсем то, что я искал, но php-cli я решил потратить немного php-errors времени на его изучение и php придумал это быстрое и грязное php-cgi решение:
" .
"" .
"Name " .
"Defined " .
"Referenced " .
" ";
foreach ($functions as $name => $value) {
echo
"" .
"" . htmlentities($name) . " " .
"" . (isset($value[0]) ? count($value[0]) : "-") . " " .
"" . (isset($value[1]) ? count($value[1]) : "-") . " " .
" ";
}
echo "";
function define_dir($path, &$functions) {
if ($dir = opendir($path)) {
while (($file = readdir($dir)) !== false) {
if (substr($file, 0, 1) == ".") continue;
if (is_dir($path . "/" . $file)) {
define_dir($path . "/" . $file, $functions);
} else {
if (substr($file, - 4, 4) != ".php") continue;
define_file($path . "/" . $file, $functions);
}
}
}
}
function define_file($path, &$functions) {
$tokens = token_get_all(file_get_contents($path));
for ($i = 0; $i < count($tokens); $i++) {
$token = $tokens[$i];
if (is_array($token)) {
if ($token[0] != T_FUNCTION) continue;
$i++;
$token = $tokens[$i];
if ($token[0] != T_WHITESPACE) die("T_WHITESPACE");
$i++;
$token = $tokens[$i];
if ($token[0] != T_STRING) die("T_STRING");
$functions[$token[1]][0][] = array($path, $token[2]);
}
}
}
function reference_dir($path, &$functions) {
if ($dir = opendir($path)) {
while (($file = readdir($dir)) !== false) {
if (substr($file, 0, 1) == ".") continue;
if (is_dir($path . "/" . $file)) {
reference_dir($path . "/" . $file, $functions);
} else {
if (substr($file, - 4, 4) != ".php") continue;
reference_file($path . "/" . $file, $functions);
}
}
}
}
function reference_file($path, &$functions) {
$tokens = token_get_all(file_get_contents($path));
for ($i = 0; $i < count($tokens); $i++) {
$token = $tokens[$i];
if (is_array($token)) {
if ($token[0] != T_STRING) continue;
if ($tokens[$i + 1] != "(") continue;
$functions[$token[1]][1][] = array($path, $token[2]);
}
}
}
?>
Вероятно, я потрачу php-errors на это еще немного времени, чтобы php-include быстро найти файлы и номера php-mail строк определений функций php-mail и ссылок; эта информация php-errors собирается, просто не отображается.
php
Как найти неиспользуемые функции в проекте PHP
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.