2012-08-25 24 views
1

Rephactor和Scisr都是PHP的自動重構工具。兩者都在開發中並提供相同的重構功能。任何人都可以告訴我兩種工具的確切區別嗎?Rephactor和Scisr PHP重構工具有什麼區別?

+1

1.它們有不同的名稱。 –

+0

有關PHP重構工具的討論,請參閱http://stackoverflow.com/q/19758/120163。 –

回答

2

我寫了Scisr,所以也許我可以提供一些見解。簡而言之,他們只是不同的工具。它們每個都有一個功能子集,您可能會發現它們都有一個,或者都沒有提供您希望的確切功能。每個人都提供了開發人員實施的一系列功能 - 即有些不完整。

答案越長(並且稍微有點偏向),它們在哲學上就有所不同。幸運的是,這兩種工具都提供了一些介紹性的概念,可以讓您瞭解每個開發人員創建的內容。 Here is Rephactor'shere is Scisr's

我嘗試了所有我能找到的PHP重構工具(包括rephactor)並且對所有這些工具感到不滿意,之後我寫了Scisr。 rephactor絕對是我嘗試過的所有工具中最有用的,但我認爲它提出了太多要求 - 它想要掛鉤到SVN,測試工具以及各種其他的東西。這些都是要遵循的良好流程,但是需要整合意味着我無法選擇該工具並立即將其用於我的項目。所以我開始着手寫一個更簡單的單一用途工具,而Scisr誕生了。

IIRC我也查看了rephactor的源代碼,發現它使用正則表達式和其他我認爲不足的解決方案。不過,我可能會誤解,所以請原諒這個聲明中的任何不真實。

另一個考慮因素應該是產品健康。不幸的是,這兩個項目或多或少都不活躍。 Scisr最近更新了,而且我仍然接受pull請求,但我現在不再積極地處理它。 Rephactor最後更新於2009年。

+0

我同意伊恩關於構建重構工具的「正則表達式」[是的,Rephactor使用正則表達式]是不充分的(很難描述它是如何不足)。我很高興聽到Scisr不使用正則表達式。那麼它使用什麼? –

+0

@IraBaxter,它使用[PHP標記器](http://www.php.net/manual/en/intro.tokenizer.php),所以它實際上是解析你的代碼,並可以在該級別操作它(如果你想爲了獲得具體的,我實際上在拉[PHP_CodeSniffer](http://pear.php.net/package/PHP_CodeSniffer),因爲它加強了我喜歡的一些額外功能的標記器。 –