2010-02-23 89 views
16

尋找能夠分析php代碼(即所有wordpress或主題主題)的軟件,並向我展示所有連接的漂亮圖片(可能是block diagram),以幫助我更快地瞭解所處的位置以及與之相關的內容什麼。是否有任何PHP代碼可視化工具?

理想的情況下,該軟件會在Mac上運行,但我會採取什麼:在Windows,Linux,基於網絡的,等等

+7

我覺得有某種根本性錯誤關於博客軟件的需要你有一個PHP代碼的可視化理解設計的主題。 – 2010-02-23 16:54:27

+1

http://www.nwiresoftware.com/想到。但它是商業的。 – Gordon 2010-02-23 17:00:03

+0

@約翰不是真的,但是當你剛開始的時候,你很難擺脫困境。我在一些項目中希望得到這樣的東西,但是我自己記住了他們的結構。 – 2010-02-23 17:07:03

回答

1

BOUML可以使UML圖從現有的PHP代碼

+1

付費軟件:( – sMyles 2014-01-22 02:27:38

+0

@Myles舊版本是免費的,也許你會發現它? – powtac 2014-01-22 15:31:02

4

[更新的:這個答案不處理命名空間,所以基本上是過時的。如果有人發現DOT方法很有趣,我會留在這裏。]

這裏有一個簡單的方法來繪製PHP中的類繼承。

grep用於類定義,然後將grep輸出轉換爲DOT語法。注意:此過程需要在您的情況下進行反覆試驗。單獨運行grep,並在將它放入腳本之前調整它以顯示正確的類定義行!

此腳本適用於標準* nix(我使用Ubuntu)的PHP,安裝了graphviz,並使用grep -v排除一些不感興趣的目錄,因爲我正在查看CakePHP代碼庫。在這種情況下,FDP比sfdp,dot,circo或neato工作得更好。

創建generateClassHierarchy.sh

#!/bin/bash 
echo 'digraph code {' > code.dot; 
grep -r "^class " * | grep -v "^app/vendors" | grep -v "^cake/" | grep -v "Binary file" | sed 's/.*://' | sed 's/class/ /' | sed 's/ extends/-> /' | sed 's/ implements .*//' | sed 's/ \?{.*$//' | sort >> code.dot 
echo '}' >> code.dot; 
fdp -Tpng -ocode.fdp.png code.dot 2> /dev/null # Ignore syntax error 
echo "OK"; 

然後,只需:

cd /var/www/my_app/      # or wherever 
bash ~/shell/generateClassHierarchy.sh # or wherever 
eog code.fdp.png 

使用您喜歡的圖像瀏覽器替換EOG。我在Zend Framework上運行這個測試,並生成了一個22兆字節的PNG圖。上運行它只是Zend_Db的顯示你這個(例子是在我的網站):

http://chapman.id.au/generate-php-class-inheritance-diagrams-in-graphviz

+2

不錯,謝謝。我調整了一些東西,包括抽象類。第一位變成'egrep -r「^(抽象類| class)」注意你可以鏈接更多的grep和grep -v的東西來限制你想要操作的類。 – dbu 2014-05-21 09:27:42

0

nWire已經過時,不支持最新的PHP版本(命名空間)。 社區版本的Visual Paradigm對於非商業項目是免費的,但是在最新的PHP版本上也是失敗的。

phUML是非常有用的免費工具它不再被維護,但仍然適用於PHP 5. Mac用戶也應安裝graphviz

0

,這是值得做這樣的區分:

班/你的PHP代碼的方法(靜態代碼分析)
  • 圖。這是你要求的東西。另外一個選項可能是PHPDependencyAnalysis,它是開源的。
  • 具有圖形庫的數據可視化/分析工具。一個很流行的工具是JGraph和像Sisense的那些有方便API可以用PHP來訪問
相關問題