尋找能夠分析php代碼(即所有wordpress或主題主題)的軟件,並向我展示所有連接的漂亮圖片(可能是block diagram),以幫助我更快地瞭解所處的位置以及與之相關的內容什麼。是否有任何PHP代碼可視化工具?
理想的情況下,該軟件會在Mac上運行,但我會採取什麼:在Windows,Linux,基於網絡的,等等
尋找能夠分析php代碼(即所有wordpress或主題主題)的軟件,並向我展示所有連接的漂亮圖片(可能是block diagram),以幫助我更快地瞭解所處的位置以及與之相關的內容什麼。是否有任何PHP代碼可視化工具?
理想的情況下,該軟件會在Mac上運行,但我會採取什麼:在Windows,Linux,基於網絡的,等等
也許http://phpcallgraph.sourceforge.net/靜態分析。
它可以輸出爲各種格式。
[更新的:這個答案不處理命名空間,所以基本上是過時的。如果有人發現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
不錯,謝謝。我調整了一些東西,包括抽象類。第一位變成'egrep -r「^(抽象類| class)」注意你可以鏈接更多的grep和grep -v的東西來限制你想要操作的類。 – dbu 2014-05-21 09:27:42
,這是值得做這樣的區分:
班/你的PHP代碼的方法(靜態代碼分析)
我覺得有某種根本性錯誤關於博客軟件的需要你有一個PHP代碼的可視化理解設計的主題。 – 2010-02-23 16:54:27
http://www.nwiresoftware.com/想到。但它是商業的。 – Gordon 2010-02-23 17:00:03
@約翰不是真的,但是當你剛開始的時候,你很難擺脫困境。我在一些項目中希望得到這樣的東西,但是我自己記住了他們的結構。 – 2010-02-23 17:07:03