2009-10-27 77 views
1

我一直在研究一個小型的PHP應用程序(總共400K)。但在建設和學習的過程中,我有很多垃圾文件。如何清理PHP項目?

我沒有做我的工作,妥善爲它們命名,即demo1.php等...

有沒有辦法做相關性檢查?還是隻是刪除,刷新和重複?然後在需要時取消刪除?

回答

4

沒有什麼神奇的工具,它會爲你做這個,有唯一的功能,這將幫助你實現你自己的解決方案。

你想要的功能是

get_included_files(); 

這將返回是到目前爲止已經列入任何文件的數組。把它放在引導文件的末尾(或所有單個文件的末尾),你可以得到包含或需要的每個文件的列表。這將不會在有file_get_contentsfopen,等打開的文件,這就是爲什麼它是一個好主意,有某種形式的包裝函數/類,將調用這些函數爲您報告(允許你勾到行動,如果需要的話)

我會採用它來添加代碼,將代碼記錄到某個地方,然後讓您的應用程序運行一兩天(或者自己練習所有的功能)。這應該會給您一個完整的項目文件列表實際上正在使用,允許您清理未出現在列表中的文件。這個日誌可以作爲簡單

file_put_contents('/tmp/files.txt',print_r(get_included_files(), true),FILE_APPEND); 
+0

聽起來很有希望,但有點過頭了。這會花費我更長的時間來弄清楚,而不是手動清理。 – shaiss 2009-10-27 18:21:41

0

聽起來像你需要從版本控制系統開始。如果你的項目已經被廢棄了,那麼你可能需要咬一口子彈並手動清理。

+0

我使用的是顛覆,但是我仍然提交了我的測試文件。我想我必須手動進行。 – shaiss 2009-10-27 18:21:08

+1

@shaiss你爲什麼要提交測試文件?如果您一遍又一遍地以不同的名稱提交同一文件,則不能正確使用版本控制。 – 2009-10-27 18:24:05

+0

不是同一個文件。即。我創建了readini,並想出瞭如何讀取我們擁有的ini文件並提取值。然後我創建了testEmp並在那裏做了一些測試。你的權利,我可能不應該擺在首位。 – shaiss 2009-10-27 18:41:52

3

我現在處於同樣的狀況,清理了一個非常大的項目,其中有些項目已經有幾年了。

做的工作是什麼我發現最重要的是:

  • 版本控制。我使用TortoiseSVN是因爲它的Windows資源管理器集成度很高。我試圖在每次更改後檢查以避免很多痛苦和痛苦。

  • 一個很好的和方便的搜索功能,使基本依賴檢查(如果是XYZ-$>使用loadFromOtherSource?)。我使用nusphere PhpEd,但是有很多工具都具有良好的搜索功能。

除此之外,沒有可靠的PHP重構/依賴項檢查工具,我知道。

0

這將是難以完成 - 有沒有辦法讓一個IDE或類似工具,知道哪些PHP文件,意在以某種方式VS那些被認爲是包括由最終用戶直接訪問。

且不說PHP讓你做真正的動態文件包含諸如該

$page = $_GET['page']; 
include('templates/' . $page . '.php'); 

最後,你只是要需要大量的盡職調查。

0

幾年前,當接管離開我們公司的另一位開發人員的代碼時,我也遇到了類似的問題。由於代碼已經投入生產,因此完全重寫不是一種選擇。但代碼在當前狀態下無法管理。

1)我創建了原始源代碼的存儲庫。

2)我創建了測試代碼來測試他的應用程序的功能。

3)我去掉了移動,移動和清理函數的過程,直到源代碼更易於管理。每次成功更改後檢入源代碼。

-1

Hy你可以自動加載你的文件。 ex。 myfile.php該類也應該命名爲myfile

<?php 
function __autoload($class_name) { 
     require_once $class_name . '.php'; 
    } 

    $obj = new MyClass1(); 
    $obj2 = new MyClass2(); 
    ?> 
+0

對不起,我沒有關注 – shaiss 2009-10-27 18:42:24

+0

這隻適用於已包含的類文件。這不會涵蓋其他任何內容。 – 2009-10-27 23:24:23

+0

所以我認爲清潔首先在你的頭上開始。那就是你應該先清理的地方。 – streetparade 2009-10-28 09:52:54