• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        如何文檔化你的PHP類(一)

        如何文檔化你的PHP類(一)

        更新時(shí)間:2022-05-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        如何文檔化你的PHP類(一)




        作者:stefano Locati 翻譯:limodou

          你已經(jīng)閱讀過關(guān)于:面向?qū)ο缶幊炭梢詭椭愎芾砟愕拇笮蛍eb項(xiàng)目,并且你已經(jīng)開始使用PHP來進(jìn)行面向?qū)ο缶幊塘藛幔咳绻阋呀?jīng)編寫了幾個(gè)類應(yīng)用在網(wǎng)站上并且你是一個(gè)有條理的人的話,那么你應(yīng)該已經(jīng)編寫了關(guān)于它們的一些文檔。但是如果你是一個(gè)象我一樣的不拘小節(jié)的人,你只是會在類的源代碼中加一些注釋而沒有別的文檔。沒有文檔就很難記住方法的名字和它們的使用方法(參數(shù)和含義)。解決這種情況最典型的辦法就是打開源代碼文件,從成百上千的語句中查找。

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

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

        一些php文檔工具的預(yù)覽
          在對上面了解了之后,我搜索了一下哪些是可用的,并且我發(fā)現(xiàn)了如下一些有趣的工具:

          phpSearchdoc是enzyme項(xiàng)目的一部分。因?yàn)閑nzyme 是一個(gè)巨大的項(xiàng)目,所以需要將其文檔化。那里的開發(fā)人員已經(jīng)編寫了他們自已的文檔系統(tǒng)并且他們非常慷慨地將其作為一個(gè)獨(dú)立的包進(jìn)行發(fā)布。得到的文檔首先被寫入數(shù)據(jù)庫,然后可以被一些PHP腳本查看,象一個(gè)動態(tài)的web站點(diǎn)。

          從現(xiàn)存的信息中將用于分析的邏輯分離出來的想法相當(dāng)好,然而phpSearchdoc(版本 1.01)不具有一個(gè)真正的分析器,而是從源文件,甚至包括注釋中搜索關(guān)鍵字。事實(shí)上,對我來說碰巧發(fā)生過在我的注釋中存在'function'單詞,結(jié)果分析器愚蠢地認(rèn)為在這個(gè)單詞后面的詞就是函數(shù)的名字。更不幸的是,我不巧在同一行放了一個(gè)單引號('),接著我試圖將數(shù)據(jù)寫到數(shù)據(jù)庫中,mysql作出了抱怨(出錯(cuò)了,因?yàn)閱我栐?mysql中被用于分割字符串)。

          而且它的安裝及運(yùn)行相當(dāng)困難,因?yàn)樗是一個(gè)alpha測試版。畢竟比起文檔系統(tǒng)來說它更象是一個(gè)交叉引用生成器,正如我知道的,你不能在函數(shù)和方法中加入自已的注釋。

          phpxref,就象名字所指的比起一個(gè)真正 的文檔系統(tǒng)來似乎更象是面向交叉引用的生成處理。更進(jìn)一步說它更適合于正常的過程化編程而不是面向?qū)ο缶幊獭?br>
          phpautodoc的目標(biāo)是實(shí)現(xiàn)象Javadoc 應(yīng)用于Java那樣用于PHP。它看上去是滿足我的文檔需求的完美解決。為了試驗(yàn)它我不得不編譯了PHP的CGI版本(我通常使用模塊版本),因?yàn)樯善魇怯肞HP編的。我可能容易地在一個(gè)Linux系統(tǒng)下編譯和安裝靜態(tài)的執(zhí)行程序,可以使用這些命令:

        rm config.chche
        make clean
        ./configure
        make
        cp php /usr/local/bin

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

        ./phpautodoc -o

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

        通用工具
          在經(jīng)受了試驗(yàn)所有這些工具但卻得不到怎么成功的挫折之后,直到Pear Project提出了一種標(biāo)準(zhǔn)的解決方法,我發(fā)現(xiàn)了一個(gè)與PHP完全無關(guān)的可工作的工具在Open Source Projects at Apple站點(diǎn)。項(xiàng)目的名字是 HeaderDoc。就象站點(diǎn)所說的" HeaderDoc是一種從C或C++頭文件的注釋中生成HTML的引用文檔的工具。它是用Perl編寫的以便于移植。與JavaDoc 相似,它允許開發(fā)者容易地文檔化他們的接口,并且將接口信息輸出到HTML。"

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

        文檔化一個(gè)類
          OK,讓我們現(xiàn)在進(jìn)入細(xì)節(jié)吧。首先讓我們看一下一個(gè)類如何被文檔化。

        --------------------------------------------------------------------------------
        /*! @class BagItem
        @abstract An item in the shopping bag - it is a shopitem with quantity
        @discussion A BagItem object may be constructed without previous
        instantiation of neither ShopItem nor Product
        */
        --------------------------------------------------------------------------------

        文檔化一個(gè)類。可以在左邊的幀選擇類的方法。

          第一件需要注意的事情是用在打開注釋上的風(fēng)格不完全象JavaDoc注釋/**(一個(gè)斜線和兩個(gè)星號),而是換成/*!(一個(gè)斜線,一個(gè)星號和一個(gè)感嘆號) 。標(biāo)記使用也不一樣,但是它們以相似的方式工作。例如,第一個(gè)標(biāo)記是@class標(biāo)記,它用于文檔化一個(gè)類,這個(gè)標(biāo)記跟著類的名字。下一個(gè)標(biāo)記是@abstract 標(biāo)記,它
        是一個(gè)可選的標(biāo)記,用少量詞語來描述一個(gè)類的含義,同時(shí)@discussion 標(biāo)記是另一個(gè)可選的標(biāo)記,用于進(jìn)一步的討論。當(dāng)然由你來決定是在@discussion標(biāo)記中描述所有的事情還是使用@abstract來處理,但是要記住,一般來說,你使用的標(biāo)記越精確,結(jié)果就越好。

        原作者:limodou
        來源:PHPX 

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 免费va在线观看| 日韩精品视频免费观看| 亚洲精品无码久久不卡| 久久亚洲精品无码av| 午夜视频在线观看免费完整版 | 亚洲一区二区视频在线观看| 国产精品亚洲一区二区无码| 日本xxwwxxww在线视频免费| 亚洲日韩精品无码专区加勒比 | 99精品国产成人a∨免费看| 久久综合图区亚洲综合图区| 久久国产乱子伦精品免费不卡| 亚洲AV日韩AV永久无码绿巨人| 999任你躁在线精品免费不卡| 亚洲精品高清视频| 91久久精品国产免费直播| 亚洲午夜精品一区二区公牛电影院| 国产大片免费网站不卡美女| 亚洲中文字幕久久精品蜜桃| AV免费网址在线观看| 国产精品亚洲小说专区| 久久亚洲国产精品123区| 精品国产一区二区三区免费| 婷婷精品国产亚洲AV麻豆不片| 中文免费观看视频网站| 亚洲国产成人精品无码区二本 | 久久精品九九亚洲精品天堂| 国产精品免费无遮挡无码永久视频| 亚洲性无码av在线| 国产成人啪精品视频免费网| 一级人做人爰a全过程免费视频| 亚洲国产成人久久综合碰碰动漫3d| 永久在线免费观看| 亚洲av成本人无码网站| 亚洲一区二区三区自拍公司| 18禁美女黄网站色大片免费观看| 久久亚洲精品无码gv| 亚洲AV无码精品色午夜果冻不卡| 99久久免费精品国产72精品九九| 国产精品内射视频免费| 亚洲免费在线视频观看|