找到未使用的PHP文件的技巧(Drupal模板文件)

时间:2010-08-05 08:03:36

标签: php templates drupal

我正在寻找一种技巧来查找未使用的包含文件。最好不要用手去掉它们。这个项目有400多个这样的文件,现在可能还没有100个。

它们是Drupal模板文件(tpl.php),并且在开发期间放置在主题/模板中,并且始终 - 在废弃时永远不会被删除。

我想到的事情:  *在数据库或日志中维护一个寄存器,然后蜘蛛网站。所有未出现在日志中的文件都是删除的候选文件,需要手动检查。  *使用文件分析工具(如cachegrind)来呈现调用堆栈:文件应该以某种方式出现在那里。但是,我不知道如何完成这项工作。

Drupal模板中的问题是它们非常动态,所以只需要为include_once()进行grepping,这样就不起作用了。

如何避免Drupal中的模板lint?

1 个答案:

答案 0 :(得分:4)

Drupal在theme registry中注册每个主题实现,包括模板文件。您可以创建自定义模块并实现hook_theme_registry_alter()来检查主题注册表,以查找主题使用的模板。从那里,您可以将主题文件夹与您生成的列表进行比较。

示例实施:

function mymodule_theme_registry_alter(&$theme_registry) {
  global $theme_path;

  $templates_used = array();

  foreach ($theme_registry as $theme) {
    if (!empty($theme['template']) && $theme['path'] === $theme_path) {
      $templates_used[] = $theme['template'] . '.tpl.php';
    }
  }

  // Display the list (requires Devel module)
  dsm($templates_used);
}

修改

如果您不想实现hook_theme_registry_alter(),可以使用theme_get_registry()获取主题注册表数组,并使用上述技术检查模板文件。