我正在寻找一种技巧来查找未使用的包含文件。最好不要用手去掉它们。这个项目有400多个这样的文件,现在可能还没有100个。
它们是Drupal模板文件(tpl.php),并且在开发期间放置在主题/模板中,并且始终 - 在废弃时永远不会被删除。
我想到的事情: *在数据库或日志中维护一个寄存器,然后蜘蛛网站。所有未出现在日志中的文件都是删除的候选文件,需要手动检查。 *使用文件分析工具(如cachegrind)来呈现调用堆栈:文件应该以某种方式出现在那里。但是,我不知道如何完成这项工作。
Drupal模板中的问题是它们非常动态,所以只需要为include_once()进行grepping,这样就不起作用了。
如何避免Drupal中的模板lint?
答案 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()
获取主题注册表数组,并使用上述技术检查模板文件。