程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 如何文檔化你的PHP類

如何文檔化你的PHP類

編輯:PHP綜合

你已經閱讀過關於:面向對象編程可以幫助你管理你的大型web項目,並且你 已經開始使用PHP來進行面向對象編程了嗎?如果你已經編寫了幾個類應用在網 站上並且你是一個有條理的人的話,那麼你應該已經編寫了關於它們的一些文檔 。但是如果你是一個象我一樣的不拘小節的人,你只是會在類的源代碼中加一些 注釋而沒有別的文檔。沒有文檔就很難記住方法的名字和它們的使用方法(參數 和含義)。解決這種情況最典型的辦法就是打開源代碼文件,從成百上千的語句 中查找。

類似Javadoc的文檔 

應該有一種好的方法----如果你 曾經使用過Java語言,你將知道Javadoc文檔系統。這個工具允許你在源代碼文 件注釋中插入一些標記,這些標記可以被Javadoc工具進行分析以便生成一系列 的HTML頁面把你的類文檔化。那樣在編程的同時你可以開著浏覽器並且可以得到 類列表和帶有說明的類方法的列表。在你開發web應用時,這個可以成為你的參 考,提高工作效率和加快開發速度。

我的意見是維護一個作為源代碼內 的引用文檔要比維護一個獨立的文檔要容易和更實用,因為這個方法更容易保持 更新。否則就非常容易變得懶惰從而將對文檔的更新推後到無限期(如果一定要 給它加個期限,我想是一萬年)。相反使用象這樣的一個工具,只有一點工作量 就是在你正在修改的源代碼附近更新一個標記,接著運行工具再一次生成更新過 的HTML頁面。

一些php文檔工具的預覽

在對上面了解了之後,我 搜索了一下哪些是可用的,並且我發現了如下一些有趣的工具:

phpSearchdoc是enzyme項目的一部分。因為enzyme 是一個巨大的項目, 所以需要將其文檔化。那裡的開發人員已經編寫了他們自已的文檔系統並且他們 非常慷慨地將其作為一個獨立的包進行發布。得到的文檔首先被寫入數據庫,然 後可以被一些PHP腳本查看,象一個動態的web站點。

從現存的信息中將 用於分析的邏輯分離出來的想法相當好,然而phpSearchdoc(版本 1.01)不具有 一個真正的分析器,而是從源文件,甚至包括注釋中搜索關鍵字。事實上,對我 來說碰巧發生過在我的注釋中存在'function'單詞,結果分析器愚蠢地 認為在這個單詞後面的詞就是函數的名字。更不幸的是,我不巧在同一行放了一 個單引號('),接著我試圖將數據寫到數據庫中,mysql作出了抱怨(出錯了 ,因為單引號在 mysql中被用於分割字符串)。

而且它的安裝及運行相 當困難,因為它還是一個alpha測試版。畢竟比起文檔系統來說它更象是一個交 叉引用生成器,正如我知道的,你不能在函數和方法中加入自已的注釋。

phpxref,就象名字所指的比起一個真正 的文檔系統來似乎更象是面向 交叉引用的生成處理。更進一步說它更適合於正常的過程化編程而不是面向對象 編程。

phpautodoc的目標是實現象Javadoc 應用於Java那樣用於PHP。它 看上去是滿足我的文檔需求的完美解決。為了試驗它我不得不編譯了PHP的CGI版 本(我通常使用模塊版本),因為生成器是用PHP編的。我可能容易地在一個 Linux系統下編譯和安裝靜態的執行程序,可以使用這些命令:

rm config.chche 

make clean 

./configure 

make 

cp php /usr/local/bin 

我決定對它自已的PHP源碼進行測試, 並且我發現它只有部分可以工作:它只能夠生成類的文檔(生成整齊的格式), 但是不能生成小結。我不知道是否這個只是碰巧發生在我的機器上,但是在試圖 生成小結時卻因為core dump(內核崩潰)而停止(PHP 4.0 pl2,RedHat 6.2環境 )。假如在你的機器/usr/local/bin下安裝了PHP執行版本,調用它的語法是( 為了得到結果我不得不給出php文件和輸出目錄的全路徑)

./phpautodoc -o

phpdoc是一個用來維護在Web站點上的php 文件,並且它非常適合分布 式開發方式。文檔是從數據庫中生成;在安裝之後,你可以使用web界面來增加 你的類將其文檔化。這個的確有意思,但是它是一種低級的從源代碼中分離文檔 的維護方法,這一點就我來說不是非常方便。

通用工具

在經受了 試驗所有這些工具但卻得不到怎麼成功的挫折之後,直到Pear Project提出了一 種標准的解決方法,我發現了一個與PHP完全無關的可工作的工具在Open Source Projects at Apple站點。項目的名字是 HeaderDoc。就象站點所說的" HeaderDoc是一種從C或C++頭文件的注釋中生成HTML的引用文檔的工具。它是用 Perl編寫的以便於移植。與JavaDoc 相似,它允許開發者容易地文檔化他們的接 口,並且將接口信息輸出到HTML。"

是的,你看的沒錯,HeaderDoc 只支持C和C++。沒有其它的語言,但是它不象JavaDoc,它大部分依賴寫在注釋 中的標記,所以只要做些小改動(我會在後面解釋)就可以很好的用在PHP上。 這些標記同JavaDoc很象,HeaderDoc標記的一些例子是@class,@function和 @var。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved