那里有没有可以告诉代码库中无用文件的工具吗?
我们有一个很大的代码库(PHP,HTML,CSS,JS文件),我希望能够删除不需要的文件。任何帮助将不胜感激。
答案 0 :(得分:3)
我猜测删除文件并运行你的phpunit测试是没有首发的。
如果您的文件不在版本控制系统中 - 请添加它们。将文件放在版本控制系统(例如svn或git)中对于允许您从删除任何您认为未被使用但后来发现的文件的文件中恢复是至关重要的。
然后,您可以删除任何您认为可能未使用的内容,如果它不影响您的应用程序的运行,您可以断定文件未被使用。如果出现不利影响 - 您可以轻松地从存储库中恢复它们。
以上内容对于前端文件(css,js,images)最合适(可能)。您删除的所有文件都将显示在您的Web服务器错误日志中,为您提供需要还原的不再存在的文件的快速参考。
对于你的php文件,这有点棘手,你是如何到达你没有使用的php文件的位置?无论如何你可以举例如:
然后您将拥有一个包含您加载的所有文件的配置文件。扫描代码库中每个php文件的生成的配置文件,可以指示您未使用哪些文件。
如果您只是在寻找未使用的文件,请不要尝试使用代码覆盖率分析 - 这是非常密集的,而不是您要求的详细程度。
在加载文件时记录的风险稍低。例如把它放在每个文件的第一行:
<?php file_put_contents('/some/location/fileaccess.log', __FILE__, FILE_APPEND); ?>
然后让您的应用程序暂停一段时间(几天,几周)。此后只扫描该日志,对于任何已命名的文件 - 删除上面的代码行。对于任何不是 - 删除(最好是在整个源代码中查找文件名并确认它不存在之后)。
OR:您可以使用shutdown函数将get_included_files()
的响应转储到日志文件中。这将允许您在不编辑源树中的所有php文件的情况下实现相同目的。
警告:小心删除你的php文件。虽然缺少css / js / image可能意味着你的应用程序仍然有效,但缺少的php文件当然会产生更大的影响:)。
答案 1 :(得分:0)
如果它在Git中,为什么不删除本地文件,然后执行git rm <file name>
将其从该分支中删除。
答案 2 :(得分:0)
同意@ AD7six所说的一切。
您可能想要尝试使用PHP来记录文件的使用(记录到平面文件或数据库)。
这项技术不必长久就可以使用每个文件顶部的include和require_once来实现。
该技术也适用于javascript函数,您只需将每个函数打印到控制台,然后对您的站点进行单元测试。你可以用这种方式清理掉很多冗余的代码。
剩下的不是那么容易,但版本跟踪是可行的方法。