【发布时间】:2010-12-10 14:23:04
【问题描述】:
我一直在开发一个小型 php 应用程序(总共 400K)。但是在构建和学习的过程中,我有很多垃圾文件。
我没有做好我的工作并正确命名它们,即demo1.php 等...
有没有办法进行依赖性检查?还是只是删除、刷新和重复?然后在需要时取消删除?
【问题讨论】:
标签: php dependencies
我一直在开发一个小型 php 应用程序(总共 400K)。但是在构建和学习的过程中,我有很多垃圾文件。
我没有做好我的工作并正确命名它们,即demo1.php 等...
有没有办法进行依赖性检查?还是只是删除、刷新和重复?然后在需要时取消删除?
【问题讨论】:
标签: php dependencies
听起来您需要从版本控制系统开始。如果您的项目已经搞砸了,那么您可能只需要硬着头皮手动清理它。
【讨论】:
我现在处于同样的情况,正在清理一个非常大的项目,其中的一部分已经存在多年了。
我发现做这份工作最重要的是:
版本控制。我使用 TortoiseSVN 是因为它具有出色的 Windows Explorer 集成。我尝试在每次更改后检查,以避免太多的痛苦和痛苦。
一个非常好的和方便的搜索功能,可以进行基本的依赖检查($xyz->loadFromOtherSource 用在哪里?)。我使用的是 nusphere PhpEd,但是那里有很多具有良好搜索功能的工具。
除此之外,据我所知,没有可靠的 PHP 重构/依赖检查工具。
【讨论】:
没有什么神奇的工具可以帮您做到这一点,只有功能可以帮助您实现自己的解决方案。
你想要的功能是
get_included_files();
这将返回迄今为止包含的任何文件的数组。将其放在引导文件的末尾(或所有单个文件的末尾),您可以获得包含或需要的每个文件的列表。这不会报告使用file_get_contents、fopen 等打开的文件。这就是为什么拥有某种包装函数/类来为您调用这些函数是一个好主意(允许您在需要时挂钩操作是)
我会采用这种方法添加在某处记录所包含文件的代码,然后让您的应用运行一两天(或自己练习其所有功能)这应该会为您提供您的文件的完整列表项目实际正在使用,允许您清理未出现在列表中的文件。这种日志记录可能很简单
file_put_contents('/tmp/files.txt',print_r(get_included_files(), true),FILE_APPEND);
【讨论】:
这将很难实现 - IDE 或类似工具无法知道哪些 PHP 文件打算以某种方式包含,哪些 PHP 文件应该由最终用户直接访问。
更不用说 PHP 可以让你像这样进行真正的动态文件包含
$page = $_GET['page'];
include( 'templates/' . $page . '.php' );
最后,您只需要进行大量的尽职调查。
【讨论】:
几年前,我从另一个离开我们公司的开发人员那里接手代码时遇到了类似的问题。完全重写不是一个选项,因为代码已经在生产中。但代码在当前状态下无法管理。
1) 我创建了原始源代码的存储库。
2) 我创建了测试代码来测试他的应用程序的功能。
3) 我经历了删除、移动和清理函数的过程,直到源代码更易于管理。每次成功更改后检查源代码。
【讨论】:
您可以自动加载文件。 前任。 myfile.php 这个类也应该命名为 myfile
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$obj = new MyClass1();
$obj2 = new MyClass2();
?>
【讨论】: