亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > PHP > 正文

如何文檔化你的PHP類

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

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

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

一些php文檔工具的預(yù)覽  
  在對(duì)上面了解了之后,我搜索了一下哪些是可用的,并且我發(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ù)庫(kù),然后可以被一些PHP腳本查看,象一個(gè)動(dòng)態(tài)的web站點(diǎn)。  

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

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

  phpxref,就象名字所指的比起一個(gè)真正 的文檔系統(tǒng)來(lái)似乎更象是面向交叉引用的生成處理。更進(jìn)一步說(shuō)它更適合于正常的過(guò)程化編程而不是面向?qū)ο缶幊獭? 

  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  

  我決定對(duì)它自已的PHP源碼進(jìn)行測(cè)試,并且我發(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)用它的語(yǔ)法是(為了得到結(jié)果我不得不給出php文件和輸出目錄的全路徑)  

./phpautodoc -o  

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

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

  是的,你看的沒(méi)錯(cuò),HeaderDoc只支持C和C++。沒(méi)有其它的語(yǔ)言,但是它不象JavaDoc,它大部分依賴寫在注釋中的標(biāo)記,所以只要做些小改動(dòng)(我會(huì)在后面解釋)就可以很好的用在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è)類??梢栽谧筮叺膸x擇類的方法。  

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

文檔化函數(shù)或方法  
  成員函數(shù)或方法使用@function標(biāo)記被文檔化。  

--------------------------------------------------------------------------------  
/*! @function getItemingroup  
   @abstract gets a bagitem of a given group and a given position  
   @param groupno int - the delivery group ordinal position in the bag  
   @param pos     int - the position of the bagitem within the group  
   @result Object - the BagItem in a given position of given group  
or -1 if it could not be found  
*/  
--------------------------------------------------------------------------------  

文檔化一個(gè)方法。  

  @function標(biāo)記聲明了一個(gè)函數(shù)并且后面跟著函數(shù)或成員函數(shù)名。然后你可以象前面一樣使用 @abstract和@discussion標(biāo)記。然而還有兩個(gè)額外的標(biāo)記。@param標(biāo)記用于描述函數(shù)的參數(shù);第一個(gè)詞假設(shè)為變量的名字,其它的則為任意的文本描述。我建議要聲明想要的變量類型,盡管PHP不是一個(gè)強(qiáng)類型語(yǔ)言。 @result標(biāo)記被用于描述返回值。  

文檔化變量  
  變量或類變量都使用@var標(biāo)記來(lái)描述。在這個(gè)標(biāo)記中,第一個(gè)詞被認(rèn)為是變量的名字,同時(shí)其它的則為任意的文本描述。象前面一樣,我建議寫出所期望的變量類型是好的做法。它也是一個(gè)文檔化所有類變量的好主意。  


文檔化一個(gè)類變量。  

--------------------------------------------------------------------------------  
/*! @var idsession   string - an unique session identifier */  
var $idsession;  
--------------------------------------------------------------------------------  
最后接觸  
--------------------------------------------------------------------------------  
/*! @header myprojectname  
   @abstract a virtual store to shop on mars  
   @discussion The difference [...]  
*/  
--------------------------------------------------------------------------------  
  @header標(biāo)記用來(lái)提供一些關(guān)于被文檔化的項(xiàng)目或類組的一般性信息。@header標(biāo)記本身跟著項(xiàng)目的名字 ,而且可以用@abstract標(biāo)記和@discussion標(biāo)記來(lái)補(bǔ)充說(shuō)明。因?yàn)轭愅ǔ4嬖谟诓煌奈募校ㄒ粋€(gè)文件一個(gè)類,且用類的名字給文件名字是一種好的想法),你可能想知道應(yīng)該將@header 標(biāo)記放在什么地方。答案很讓人吃驚,哪都可以。我的建議是:如果它比較長(zhǎng)就把它放在一個(gè)獨(dú)立的文件中,或如果是一個(gè)簡(jiǎn)短的說(shuō)明就把它放在最重要的類的前面。  

如何修改腳本用于PHP  
  從Apple得到的初始的HeaderDoc腳本是用于C或C++頭文件的,所以要用在PHP中需要對(duì)它做一些小改動(dòng) 。如果你對(duì)細(xì)節(jié)沒(méi)有興趣,你可以從這里下 載,并且跳過(guò)下面部分。  
  修改源程序所做的唯一的事情就是在主perl文件中,使腳本可以接受.php和.php3后綴。  

--------------------------------------------------------------------------------  
$ diff headerDoc2HTML.pl /usr/local/bin/headerdoc2html  
195c195  
< ($rootFileName = $filename) =~ s/.(h|i)$//;
---
>     ($rootFileName = $filename) =~ s/.(h|i|php|php3)$//;  
--------------------------------------------------------------------------------  
運(yùn)行腳本  
  在安裝完腳本之后,假設(shè)你的類放在classes子目錄下,并且你想將生成的文檔放在docs目錄下,你應(yīng)該執(zhí)行這個(gè)命令:  

headerdoc2html -o docs classes/*.php  

  不幸的是如果存在多個(gè)PHP文件,這個(gè)腳本有一個(gè)壞習(xí)慣就是將那些文件分割到不同的目錄中去,使得在類的文檔中瀏覽變得很困難。而且因?yàn)槌跏嫉哪_本是為C/C++頭文件所寫的(頭文件中只有類和函數(shù)的聲明而沒(méi)有他們的定義),腳本會(huì)將函數(shù)名下的所有代碼輸出,直到碰到";",所以典型的就是代碼的第一行。  

  但是在你好不容易讀到現(xiàn)在卻感到絕望之前,放松,因?yàn)槲覍懥艘欢魏?jiǎn)單的腳本來(lái)解決這兩個(gè)問(wèn)題。  

--------------------------------------------------------------------------------  
cat classes/*.php | sed 's/ *{/;#{/g' | tr "#" "  
" > docs/all.php  
headerdoc2html -o docs docs/all.php  
rm docs/all.php  
--------------------------------------------------------------------------------  
  如果你想知道為什么我在這里使用tr命令而不是都用sed來(lái)做,原因就是用在仍然用在RedHat 6.2上的sed 3.02版本不處理?yè)Q行符。應(yīng)該替換成新的版本sed 3.02a。如果你對(duì)sed感興趣,可以看SED FAQ。  

  祝你的文檔化工作好運(yùn)!  



翻譯后話:
  由于這篇文章是在Linux環(huán)境下使用的,所以在windows下的使用可能會(huì)有問(wèn)題。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
日本中文字幕不卡免费| 日韩欧美精品网址| 精品国产一区二区三区| 看一级黄色录像| 成人免费在线播放视频| 成人久久18免费网站漫画| 久草免费福利视频| 精品久久久久久久无码| 人妻少妇精品无码专区| 中文字幕网址在线| 美女又爽又黄视频毛茸茸| 亚洲爱爱爱爱爱| 天天插天天操天天射| 色综合久久九月婷婷色综合| 狠狠做六月爱婷婷综合aⅴ| 国产日本欧美一区二区三区| 粉嫩av性色av蜜臀av网站| 国产精品调教视频| 午夜精品成人在线视频| 中文字幕久久一区| 东方aⅴ免费观看久久av| 自拍在线观看| 亚洲精美视频| 女女同性女同一区二区三区按摩| 国产精品999999| 精品久久中文字幕久久av| wwwwxxxx国产| 欧洲一级在线观看| 天堂中文av在线| 亚洲国产毛片aaaaa无费看| 怡红院av亚洲一区二区三区h| 亚洲欧美日韩国产综合在线| 欧美成人二区| 无人区在线高清完整免费版 一区二| a级黄色一级片| 欧美亚洲另类视频| 国产精品美女呻吟| 久久久久久高潮国产精品视| 综合色就爱涩涩涩综合婷婷| 99久久www免费| 成人av在线播放网址| 成人免费视频观看视频| 久久久久久久伊人| 91成人免费视频| 成人影院在线观看视频| 国产日韩欧美亚洲| 日韩av电影免费观看高清完整版| 亚洲第一区色| 欧美性猛交xxxx乱大交少妇| 欧美精品麻豆| 欧美香蕉视频| 三级电影在线看| 99成人精品视频| 91蝌蚪国产九色| 思思99精品视频在线观看| 欧美深夜福利| 欧美日韩精品免费观看| 日韩另类视频| 91在线导航| 5566中文字幕| 中文字幕资源网在线观看免费| 日本最新高清不卡中文字幕| 韩国黄色一级大片| 亚洲最大成人在线| 亚洲高清视频在线观看| 91精品又粗又猛又爽| 中文字幕五月欧美| 在线精品亚洲一区二区不卡| 国产日韩欧美二区| 亚洲精品在线播放视频| 亚洲三级电影| 亚洲高清在线观看| 台湾无码一区二区| 国产精欧美一区二区三区白种人| 国产1区2区3区精品美女| 欧美性猛交xxxx乱大交| 国产理论电影在线| 91福利小视频| 黑人巨大精品欧美一区二区小视频| 99精品久久| 免费黄色在线视频| 日韩欧美精品一区二区三区| 欧美有码在线| 久久久99免费| 中文字幕第四页| mm1313亚洲国产精品无码试看| 国产中文字幕在线观看| 久久在线视频免费观看| 中文字幕在线不卡一区| 精品欧美一区二区精品少妇| 日韩制服丝袜先锋影音| 欧美剧情电影在线观看完整版免费励志电影| 亚洲色图首页| bestiality新另类大全| fc2成人免费人成在线观看播放| 亚洲影院久久精品| 久久久久久久久久久久久久国产| 一区二区在线中文字幕电影视频| 波多野结衣一二三区| 国产精品女人久久久久久| av日韩中文| 波多野结衣黄色| 免费啪视频在线观看| 91福利视频网| 偷拍自拍亚洲| 国产在线一区二区视频| 亚洲精品日韩久久| 亚洲伦理网站| 日韩免费视频线观看| 精品一区二区三区电影| 娇小发育未年成性色xxx8| 日韩一二三区视频| 欧美日韩在线不卡视频| 免费毛片aaaaaa| 欧美大胆的人体xxxx| 日韩欧美视频免费在线观看| 成人精品一区| 久久影院资源网| 免费黄色网址在线观看| 欧美三级黄美女| 日韩欧美亚洲综合| 久久伊人资源站| 亚洲自拍偷拍网站| 97超碰国产一区二区三区| 亚洲欧洲日产国码无码久久99| 欧美日韩亚洲免费| 色老头一区二区三区| 少妇高潮一69aⅹ| 奇米777在线| 精品88久久久久88久久久| 一级黄色片视频| 国产视频一区二| 久草资源站在线观看| 91n.com在线观看| 国产亚洲精品激情久久| 一区二区三区四区蜜桃| 久久青草伊人| 日本欧美日韩| 欧美一区二区三区| 免费网站观看www在线观| 久久久久91| 国产一区日韩一区| 久色视频在线观看| 国产精品日韩欧美| 亚洲人午夜精品免费| 久久国产精品成人免费观看的软件| 波多野结衣视频网站| a级大片免费看| 69成人免费视频| 日韩欧美电影一区二区| 亚洲精品国产精品乱码视色| 欧美极品第一页| 国产18无套直看片| 日韩美脚连裤袜丝袜在线| 91av俱乐部| 一区二区三区电影大全| 91精品久久久| 国产精品久久久久久福利一牛影视| 久久精品国产99国产| 日本高清一区二区视频| 欧美亚洲色图视频| 黄网站在线观| 国产又粗又黄又猛| 一级片免费在线| 久久精品av麻豆的观看方式| 麻豆影视在线播放| 国产精品18久久久久久久久久| 久久夜精品香蕉| 天天综合在线观看| 色偷偷网站视频| 缴情综合网五月天| 亚洲婷婷综合久久一本伊一区| 老女人av在线| 欧美日韩国产精品激情在线播放| 男女爱爱视频网站| 欧美男同性恋视频网站| 久久久久久久欧美精品| 国产毛片精品一区| 久久精品无码中文字幕| 国产精品视频一区二区三区四| 亚洲欧美日韩久久久久久| 97超碰人人爽| 伊人色综合一区二区三区影院视频| 亚洲一区二区美女| 精品嫩模一区二区三区| 苍井空浴缸大战猛男120分钟| 欧美成人片在线| 欧美一区二区观看视频| 91精品国产成人| 久久婷婷麻豆| 国产精品嫩草久久久久| 日韩精品久久久久久| 国产亚洲一区二区三区在线播放| 久久婷婷蜜乳一本欲蜜臀| 国产精品夜间视频香蕉| 久久久久久久久毛片| 99热这里只有精品7| 伊人久久大香线蕉综合网蜜芽| 91日韩欧美| 一级黄色片网站| 欧美一区午夜精品| 国产在线免费观看| 免费精品视频一区二区三区| 午夜天堂在线观看| 精品一区二区91| a4yy在线播放免费观看视频| 操人视频在线播放| 欧美体内she精视频在线观看| 精品久久久久久综合日本欧美| 一级黄色在线观看| 日本欧美黄色| av在线国产精品| 女人一区二区三区| 精品国模在线视频| 蜜臀av免费观看| 国产精品久久久久久久龚玥菲| 中文字幕一区二区三区在线视频| 欧美日韩色综合| 在线观看视频欧美| 欧美激情极品| 国产色婷婷国产综合在线理论片a| 老熟妻内射精品一区| 免费涩涩18网站入口| 夜夜春很很躁夜夜躁| 成人看片黄a免费看在线| 欧美一区二区三区| 欧美成人在线免费视频| 欧美黑人疯狂性受xxxxx野外| 日韩欧美国产综合在线| 久久久久久无码精品人妻一区二区| 国产毛片一区二区三区| 国产精品996| 牛牛电影国产一区二区| 亚洲国产日韩一级| 日韩情爱电影在线观看| 一本一本a久久| 日韩美女激情视频| 无码少妇精品一区二区免费动态| 成人免费午夜电影| 91超碰碰碰碰久久久久久综合| 精品一区二区91| 伊人av免费在线观看| 日韩三级精品电影久久久| 欧美视频一区| 国产精品久久久久久久天堂| 精品国产91洋老外米糕| 99超碰在线观看| 性欧美疯狂xxxxbbbb| 亚洲性色视频| 久久综合久久久| 亚洲黄色av网站| 国产乱码精品一区二区三| 日韩1区2区| 可以免费观看的黄色网址| 国产视频福利在线| 91精品国模一区二区三区| 性做久久久久久久免费看| 91久久人澡人人添人人爽欧美| 亚洲视频在线免费播放| 日本欧美一区二区三区不卡视频| 日韩av一区二区三区美女毛片| eeuss草民免费| 日本午夜一区二区| 精品推荐蜜桃传媒| 日本久久一区二区三区| 精品国产综合区久久久久久| 免费看的av网站| 日韩综合在线| 亚洲欧洲在线观看| 成人福利网站在线观看| 国产又大又粗又硬| 亚洲综合激情六月婷婷在线观看| 日韩电影免费观看在线观看| 国产精品久久久久久久裸模| 亚洲专区一区二区三区| 韩国女主播一区二区三区| 欧美小视频在线观看| 国产三级国产精品国产国在线观看| 国产v在线观看| 丝袜美腿一区| 日本黄色女人| 亚洲a成人v| 91蜜桃免费观看视频| 色综合久久久久久久久| www免费网站在线观看| 国产美女精品一区二区三区| 精品国产露脸精彩对白| 400部精品国偷自产在线观看| 美女福利视频在线| 久久色精品视频| 亚洲国产免费av| 免费在线黄色片| 久操视频免费在线观看| www.黄色小说.com| 一边摸一边做爽的视频17国产| 日韩欧美不卡在线观看视频| 亚洲男人天堂网| 欧美最猛性xxxxxhd| japan乱配videos老少配| www.色偷偷.com| 国产精品va在线播放我和闺蜜| 亚洲一区二区精品在线观看| 麻豆精品国产传媒| jlzzjizz在线播放观看| 99国产牛牛视频在线网站| 欧美日韩免费高清| 久久国产精品一区二区三区| 色先锋av男人资源先锋影院| 亚洲成人影院麻豆| 国内不卡的一区二区三区中文字幕| 国产一级18片视频| 日产福利视频在线观看| 色中色777| 亚洲国产精品免费在线观看| 国产精品一区二区午夜嘿嘿嘿小说| a91a精品视频在线观看| 欧美精品aa| 91麻豆免费观看| 九九这里只有精品视频| 亚洲第一黄网| 免费黄色地址| 欧美久久一二区| 亚洲一区二区av| 在线看日韩av| 久久伊人91精品综合网站| 欧美久久九九| 国产精品毛片a∨一区二区三区|国| 亚洲国产精品一区二区www|