日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > access > PHP 框架,Zend、symfony、CakePHP

PHP 框架,Zend、symfony、CakePHP

來源:程序員人生   發(fā)布時間:2014-09-06 14:18:24 閱讀次數(shù):3961次

2007 年 11 月 12 日

短短數(shù)年前,對 PHP 最常見批評之一是不支持 MVC 樣式的架構(gòu)。隨著時代的變遷,現(xiàn)在在 PHP 框架領(lǐng)域里可以獲得多種選擇。本系列將介紹三個廣泛使用的 PHP 框架 —— Zend、symfony 和 CakePHP —— 通過在三個框架中構(gòu)建和擴(kuò)展樣例應(yīng)用程序來檢驗(yàn)這三個框架的類似之處和不同之處。

PHP 框架” 系列專門針對那些想要開始使用框架、但又沒有機(jī)會詳細(xì)檢驗(yàn)可用框架的 PHP 開發(fā)人員。在學(xué)完本系列后,您將了解選擇這三個框架的原因、如何安裝每個框架,并且充分運(yùn)用將在三個框架中擴(kuò)展的測試應(yīng)用程序。聽起來要學(xué)習(xí)的內(nèi)容很多,但是不必?fù)?dān)心。內(nèi)容雖然多,但是我們已經(jīng)把內(nèi)容細(xì)分為多個便于管理的部分。

關(guān)于本系列

本系列的第 1 部分將列出本系列涵蓋的內(nèi)容,介紹將進(jìn)行考察的框架以及說明如何安裝,并查看將構(gòu)建的第一個測試應(yīng)用程序。

第 2 部分將指導(dǎo)您在三個框架中構(gòu)建樣例應(yīng)用程序,著重說明了它們的類似之處和不同之處。

第 3 部分從擴(kuò)展測試應(yīng)用程序開始,然后處理不符合一般規(guī)律的例外情況。所有框架都能很好地完成份內(nèi)的任務(wù)。每個項(xiàng)目中都需要完成一些框架設(shè)定工作之外的事情。第 2 部分就將介紹那些情況。

第 4 部分主要介紹了 Ajax 支持。使用本機(jī)代碼和第三方庫檢驗(yàn)了 Ajax 的使用 —— 特別介紹了每個框架如何運(yùn)行及接受具體的常用庫。

第 5 部分將處理如何在框架外部工作。設(shè)定一項(xiàng)任務(wù)(每晚更新腳本),并在每個框架中檢驗(yàn)完成此項(xiàng)任務(wù)的過程。





回頁首


關(guān)于本文

本文提供了大量內(nèi)容。您必須快速地跟上節(jié)奏。本文要對三種框架進(jìn)行審視。是哪三種框架?為什么要針對這三種框架?還有其他哪些框架?為什么不選擇其他框架?太多的問題要解答!但是在執(zhí)行每個框架的安裝過程之前,大部分問題都將得到回答。然后您將了解本系列后續(xù)文章中使用的測試應(yīng)用程序。您馬上就可以了解不同框架之間有何不同之處以及這些框架都可以實(shí)現(xiàn)哪些相同的工作。

系統(tǒng)要求

開始之前,需要具備一定的工作環(huán)境。需要滿足的要求包括:

  1. 支持會話的 HTTP 服務(wù)器(并且最好啟用了 mod_rewrite)—— 本系列使用的是啟用了 mod_rewrite 的 Apache V1.3
  2. PHP V5.1.4 或更高版本 —— 并不是所有框架都需要使用此版本級別的 PHP,但是為了簡單起見,所有框架都將使用同一個 PHP 安裝。本系列使用的是 PHP V5.2.3。
  3. 最近發(fā)布的 MySQL 安裝 —— 可以使用并支持若干種其他數(shù)據(jù)庫選擇,但是本系列和樣例應(yīng)用程序都是使用 MySQL V5.0.37 編寫的。
  4. 支持 PHP V5.2.4 或更高版本及 MySQL 的操作系統(tǒng) —— 本系列中使用了 Linux®。如果您是 Windows® 用戶,則需要做出明顯的調(diào)整,尤其在下面介紹創(chuàng)建目錄時。

先決條件

假定您已經(jīng)了解 PHP、應(yīng)用程序設(shè)計(jì),以及如何在數(shù)據(jù)庫中工作。不要求您具有框架使用經(jīng)驗(yàn),但是您應(yīng)當(dāng)已經(jīng)準(zhǔn)備好開始使用框架。





回頁首


模型框架

在了解哪些框架被選中之前,有必要來討論一下框架是什么。

框架思想就是提供一種可以在多個應(yīng)用程序中使用的設(shè)計(jì)。所有應(yīng)用程序都有大量通用的基本內(nèi)容 —— 具體地說,就是某類與數(shù)據(jù)庫的接口、某些應(yīng)用程序邏輯、應(yīng)用程序呈現(xiàn)給用戶的內(nèi)容等。如果您編寫過許多 PHP 應(yīng)用程序,則會知道這些基本內(nèi)容是什么。您可能已經(jīng)編寫過一組函數(shù)或從數(shù)據(jù)庫中讀取數(shù)據(jù)和向數(shù)據(jù)庫中寫入數(shù)據(jù)的類,可能已經(jīng)使用過諸如 Smarty 之類的模板引擎來管理 UI。而且一定編寫過大量 PHP 代碼來完成諸如分析表單提交并根據(jù)提交的數(shù)據(jù)作決定之類的事務(wù)。如果您已經(jīng)編寫過很多應(yīng)用程序,則可能已經(jīng)一次又一次地做過相同的基本工作,有時還會將一個應(yīng)用程序中的代碼借用到另一個應(yīng)用程序中。

框架專門用于為這些常用元素(數(shù)據(jù)庫交互、表示層、應(yīng)用程序邏輯)提供結(jié)構(gòu),以便您可以花費(fèi)更少的時間來編寫數(shù)據(jù)庫接口代碼或者表示層接口,而花費(fèi)更多的時間來編寫應(yīng)用程序本身。以這種方式分解應(yīng)用程序,這種架構(gòu)被稱為模型-視圖-控制器(Model-View-Controller,MVC)。模型 指數(shù)據(jù),視圖 指表示層,而控制器 指應(yīng)用程序邏輯或業(yè)務(wù)邏輯。對 MVC 的完整討論超出本文的范圍,但是鼓勵您研究 MVC 并深入了解 MVC 的一切(請參閱 參考資料)。





回頁首


選擇框架

每種語言幾乎都有若干個框架可用。選擇剛好滿足需求的框架可能有點(diǎn)難,尤其是當(dāng)您以前未曾使用過任何一個框架時更是如此。雖然熟悉此領(lǐng)域的同事和可信賴的 developerWorks 作者提供的建議和評價(jià)會十分有幫助,但是選擇任何框架時實(shí)際上應(yīng)當(dāng)遵循的惟一一個指導(dǎo)原則是:框架為每個人 節(jié)省的時間和精力越多越好。如果一個框架工作得很好但是會導(dǎo)致產(chǎn)生大量支持調(diào)用,那就不是一個優(yōu)秀框架。如果一個框架易于支持,但是起到的阻礙作用大于輔助開發(fā)作用,那也不是一個優(yōu)秀框架。如果一個框架十分優(yōu)雅,但是會導(dǎo)致出現(xiàn)支持問題和開發(fā)問題,那么這個框架也是沒有用的。

選擇項(xiàng)目框架時,考慮從上到下所有相關(guān)人員的意見,并且在評估框架時,考慮到對其他各方的影響。

當(dāng)考慮采用一個框架時,請進(jìn)一步審視您的應(yīng)用程序,并思考該應(yīng)用程序是不是需要一個框架。框架不是必需品。即使不使用框架,也可以繼續(xù)編寫企業(yè)應(yīng)用程序。框架會對項(xiàng)目有幫助么?它是否會節(jié)省每個人的時間和精力?您的應(yīng)用程序在框架中是否會執(zhí)行得更好?它是否將提供所缺乏的穩(wěn)定性?如果上面任意一個問題的答案為是,那么您應(yīng)當(dāng)考慮采用框架。如果所有這些問題的答案都為否,那么使用框架只會把事情變復(fù)雜。

可惜,本文的長度和范圍限制不允許全面介紹所有可用的 PHP 框架。本系列主要介紹三個框架:

  • Zend 框架
  • symfony
  • CakePHP

選擇這些框架的原因有很多,但可能都屬于這幾類因素:“您老板聽說過的框架”、“某些人已經(jīng)安裝過的框架” 或者 “曾經(jīng)談?wù)撨^的框架”。我鼓勵您研究 CodeIgniter、Seagull、Web Application Component Toolkit (WACT)、PRADO、Zoop、PHP on Trax 或者其他眾多可用 PHP 框架中的一個。框架選擇全憑個人喜好,就像選擇用哪種語言編寫代碼一樣。本系列不會告訴您哪個框架比其他框架更好或更差。哪個框架在某方面做得好,我們就會討論它。哪個框架看上去不實(shí)用,我們也會討論它。即使我們不能全面地涵蓋各種框架,我們采用的方法也將幫助您學(xué)會衡量其他框架的優(yōu)點(diǎn)和缺點(diǎn)。您需要對正在檢驗(yàn)的框架形成自己的觀點(diǎn),哪些框架您喜歡,并且決定繼續(xù)使用哪個框架。

Zend 框架

所有人都知道 Zend —— “PHP 公司”。當(dāng)您下載和安裝 PHP 時,從大約 V3 開始,您就是在從 Zend 下載 PHP。除了發(fā)布 PHP 之外,Zend Technologies 多年來已經(jīng)提供了大量 PHP 支持技術(shù)。Zend 提供適用于 PHP 的框架應(yīng)當(dāng)不稀奇 —— 這是一個到現(xiàn)在為止已經(jīng)有兩百萬下載次數(shù)的流行框架。如果您老板聽說過 PHP 框架,那么很可能指的就是 Zend 框架。

symfony

由 Sensio 贊助的 symfony “旨在提高創(chuàng)建和維護(hù) Web 應(yīng)用程序的速度,以及用功能、控制和愉悅來替代重復(fù)性的編碼任務(wù)”。symfony 框架已經(jīng)在世界各地的許多企業(yè)級應(yīng)用程序中使用,其中可能包括最著名的 Askeet 和 Yahoo! 書簽。如果您認(rèn)識的某個人安裝、使用或玩轉(zhuǎn)某個 PHP 框架,那么該框架很可能就是 symfony。

CakePHP

CakePHP 大部分源自 Ruby on Rails,它旨在把簡單性和可伸縮性引入到 PHP 框架中。CakePHP 一直被視為頂級 PHP 框架,并且 PHP V5 最近被選作 Mambo Content Management System 的核心。受強(qiáng)大的社區(qū)及快速增長的用戶庫推動,CakePHP 的受歡迎程度正在穩(wěn)步增加。如果您曾聽到過關(guān)于 PHP 框架的討論,那么該討論可能就是關(guān)于 CakePHP 的。





回頁首


安裝

每個框架都有自己的一組安裝說明,并且完整的安裝細(xì)節(jié)超出本文的范圍。本文將重點(diǎn)說明這三個框架的安裝,突出每個單獨(dú)框架的安裝說明里可能未涉及的要點(diǎn),或者需要有別于安裝說明的內(nèi)容,因?yàn)閷⑷咳齻€框架安裝到一臺計(jì)算機(jī)上十分特殊。

首先創(chuàng)建一個文件夾來保存所有代碼、框架并包括本系列需要的內(nèi)容(例如,名為 /column 的目錄)。在此目錄中,創(chuàng)建四個附加目錄:htdocs、protected、include 和 src。編輯 Apache conf 文件,使文檔根目錄指向 /column/htdocs —— 然后當(dāng)您處于該目錄中時(如果尚不在其中),應(yīng)當(dāng)啟用 mod_rewrite。編輯 php.ini conf 文件使 /column/include/ 目錄包含在 include_path 指令中。如果您還沒明白所有這些操作的意義,請不要著急。當(dāng)您安裝框架時,一切都會變得清晰。

安裝 Zend 框架

下載 Zend 框架(請參閱 參考資料)。本系列使用的是 V1.0.1。下載并將 Zend 框架解壓縮到 /column/src 目錄中。該發(fā)行版將包含若干個文本文件和三個目錄:demos、tests 和 library。把庫目錄(這應(yīng)當(dāng)只是名為 Zend 的文件夾)的內(nèi)容復(fù)制到 /column/include/ 目錄中。現(xiàn)在應(yīng)當(dāng)有包含若干個目錄和文件的名為 /column/include/Zend 的文件夾。這些是 Zend 框架所使用的庫。

好的!您已經(jīng)安裝了 Zend 框架。

安裝 symfony

下載 symfony(請參閱 參考資料)。您可以通過下載頁面中列出的任意一種方法隨意安裝 symfony,但是出于我們的目的建議下載 tarball。將 tarball 解壓縮到 /column/src/symfony/ 目錄中。您應(yīng)當(dāng)會看到四個目錄(data、doc、lib 和 licenses),以及一些 README 文檔。對于安裝完成的應(yīng)用程序來說,并不是所有的這些文檔和目錄都是必需的,但是現(xiàn)在,有這些文檔和目錄是可以的。對于安裝來說,看上去可能過于簡單。一定要記住,這些框架一般都是由實(shí)用程序和庫組成的,因此安裝框架并不難。使用框架需要執(zhí)行一些追加配置。稍后您就將清楚如何配置。

安裝 CakePHP

下載 CakePHP(請參閱 參考資料)。本系列使用的是 1.2.0.5427alpha 版本。不管是不是成熟的 alpha 版本,CakePHP 的 1.2 分支已經(jīng)成為 CakePHP 社區(qū)廣泛接受的標(biāo)準(zhǔn)。下載并解壓縮 tarball,將其內(nèi)容放到 /column/src/cakephp 中。應(yīng)當(dāng)?shù)玫剿膫€目錄(app、cake、doc 和 vendors)以及兩個文件(.htaccess 和 index.php)。稍后將對這些文件中的一些文件進(jìn)行操作,不過現(xiàn)在這樣就可以了。





回頁首


測試應(yīng)用程序

您已經(jīng)下載并安裝了三個框架。但是您可能已經(jīng)注意到自己尚未用這三個框架執(zhí)行任何實(shí)際操作,例如用 Hello World 應(yīng)用程序檢驗(yàn)安裝。那是因?yàn)槟^ Hello World 并轉(zhuǎn)到較深入(但不會非常深入)的內(nèi)容中。

在 PHP 框架中構(gòu)建 Hello World 應(yīng)用程序可能會有點(diǎn)痛苦。使用框架需要花費(fèi)一定的系統(tǒng)開銷,并且該系統(tǒng)開銷發(fā)生在您嘗試創(chuàng)建諸如 Hello World 等簡單內(nèi)容時。但是,在處理更復(fù)雜的應(yīng)用程序時,同樣的系統(tǒng)開銷看上去則成為合理的支出。

您將構(gòu)建的測試應(yīng)用程序并不復(fù)雜。該測試應(yīng)用程序?qū)⒃试S您使用文本區(qū)域把文本粘貼到應(yīng)用程序中。該文本將被保存到數(shù)據(jù)庫中并在請求時由該應(yīng)用程序檢索來顯示。使用這樣一個應(yīng)用程序,您將可以輕松地創(chuàng)建和更新 Web 站點(diǎn)中的內(nèi)容,而無需編輯 HTML 或上傳新文件。這種高度創(chuàng)新并使用新方法的應(yīng)用程序?qū)⒈环Q為 Blahg。

Blahg 怎樣使用?

根據(jù) Blahg 的描述,您可能已經(jīng)推斷出如何設(shè)計(jì)應(yīng)用程序需要考慮的幾個方面。Blahg 需要四個元素:

  1. 包含表單的頁面 —— 此表單至少要包含一個文本區(qū)域。此頁面將是寫入頁面。
  2. 讀取粘貼內(nèi)容的頁面 —— 此頁面將需要被傳遞給某種 post 標(biāo)識符。此頁面將是讀取頁面。
  3. 列出可用粘貼內(nèi)容的頁面 —— 此頁面將是索引頁面。
  4. 保存粘貼內(nèi)容的數(shù)據(jù)庫表 —— 這張表至少需要保存粘貼的文本和 post 標(biāo)識符,還可能保存 Post 標(biāo)題和粘貼內(nèi)容的最后一次修改日期。

很明顯,Blahg 可以比現(xiàn)在更健壯,并且稍后在本系列中,您將執(zhí)行一些增強(qiáng)工作。但是現(xiàn)在,滿足這些簡單要求就足夠。可惜的是,您現(xiàn)在還不能獲得在任意一個框架中構(gòu)建 Blahg 的機(jī)會。那要在第 2 部分中進(jìn)行。但是現(xiàn)在是設(shè)置您將使用的數(shù)據(jù)庫的最佳時機(jī)。





回頁首


設(shè)置數(shù)據(jù)庫

在可以實(shí)際構(gòu)建 Blahg 之前,需要設(shè)置數(shù)據(jù)庫。并不是每個單獨(dú)框架都必須設(shè)置數(shù)據(jù)庫,但是出于本系列的學(xué)習(xí)目的,這樣做將使事情變得更有序,同時可以避免必需的表前綴。

創(chuàng)建三個名為 Zend、symfony 和 Cake 的數(shù)據(jù)庫,并將對每個數(shù)據(jù)庫的全部權(quán)限授權(quán)給相應(yīng)的用戶。下面每個框架的指令都將包含創(chuàng)建 posts 表必需的 SQL。

擺弄數(shù)據(jù)庫的同時,您也可以創(chuàng)建 Blahg 將在開頭使用的表。使用以下 SQL 在 Zend 和 symfony 數(shù)據(jù)庫中創(chuàng)建 posts 表。


清單 1. 在 Zend 和 symfony 中創(chuàng)建 posts 表
CREATE TABLE 'posts' ( 'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 'title' VARCHAR( 255 ) NOT NULL , 'text' TEXT NOT NULL , 'modified' TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE = MYISAM ;

對于 Zend 和 symfony,將把對修改后的列的維護(hù)工作留給數(shù)據(jù)庫。對于 CakePHP,將使用略有不同的 SQL。這樣做將使 Cake 為您變一些魔術(shù)(尤其是,CakePHP 將自動維護(hù)修改后的列)。


清單 2. 在 CakePHP 中創(chuàng)建 posts 表
CREATE TABLE 'posts' ( 'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 'title' VARCHAR( 255 ) NOT NULL , 'text' TEXT NOT NULL , 'modified' DATETIME DEFAULT NULL ) ENGINE = MYISAM ;

這和使用表語法一樣簡單。根據(jù)這些表的外觀,您應(yīng)當(dāng)非常清楚 Blahg 的外觀及運(yùn)行會是怎樣的。您甚至可能親自構(gòu)建 Blahg。





回頁首


接下來的步驟

請忍住要立即投入并開始玩轉(zhuǎn)框架的誘惑。相反,花一些時間在不使用任何框架的情況下構(gòu)建 Blahg。用您慣用的方法編寫一個應(yīng)用程序,不用管那是一種什么樣的方法。構(gòu)建 Blahg 時一定要遵守上面列出的要求 —— 仍然不要太有想象力。通過在框架上下文外部構(gòu)建測試應(yīng)用程序并修改應(yīng)用程序以包括在本系列中構(gòu)建的增強(qiáng)功能,您可以很好地衡量給定框架對需求和開發(fā)風(fēng)格的滿足程度。





回頁首


結(jié)束語

到這里,我們已經(jīng)打好了基礎(chǔ)。我希望您的安裝順利完成,但是如果遇到任何問題,則一定要研究每個單獨(dú)框架的安裝文檔(請參閱 參考資料)。請花一些時間根據(jù)以上指導(dǎo)信息構(gòu)建 Blahg。這將是您值得花時間去做的事情。



參考資料

學(xué)習(xí)
  • 您可以參閱本文在 developerWorks 全球站點(diǎn)上的 英文原文

  • 查閱 Zend Framework 手冊

  • 獲得 symfony 文檔

  • 查閱 CakePHP 手冊(注:該手冊是為 CakePHP V1.1 撰寫的。如果您使用的是 CakePHP V1.2,則可能會有些差別)。

  • 閱讀五部分系列教程 “Cook up Web sites fast with CakePHP”。

  • 訪問 Wikipedia 進(jìn)一步了解 軟件框架

  • 從 Wikipedia 中獲得 MVC 結(jié)構(gòu) 的概覽。

  • 有關(guān)更多信息,請參考 PHP 手冊

  • 要獲得其他 PHP 文檔,請?jiān)L問 PHP.net

  • 要獲得學(xué)習(xí)如何用 PHP 編程的教程,請查閱 developerWorks “學(xué)習(xí) PHP” 系列。

  • PHP.net 是 PHP 開發(fā)者的重要資源。

  • 查看 “PHP 推薦讀物列表”。

  • 瀏覽 developerWorks 上的全部 PHP 文章PHP 教程

  • 查看 IBM developerWorks 的 PHP 項(xiàng)目資源 以擴(kuò)展 PHP 技巧。

  • 收聽針對軟件開發(fā)人員的有趣訪談和討論,一定要訪問 developerWorks podcast

  • 要將數(shù)據(jù)庫與 PHP 結(jié)合使用?查看 Zend Core for IBM,它是一個無縫的、可以立即使用、易于安裝、支持 IBM DB2 V9 的 PHP 開發(fā)和生產(chǎn)環(huán)境。

  • 隨時關(guān)注 developerWorks 的 技術(shù)事件和網(wǎng)絡(luò)廣播

  • 查閱最近將在全球舉辦的面向 IBM 開放源碼開發(fā)人員的研討會、交易展覽、網(wǎng)絡(luò)廣播和其他 活動

  • 訪問 developerWorks 開放源碼專區(qū),獲得豐富的 how-to 信息、工具和項(xiàng)目更新,幫助您用開放源碼技術(shù)進(jìn)行開發(fā),并與 IBM 產(chǎn)品結(jié)合使用。

  • 查看免費(fèi)的 developerWorks On demand demo 觀看并了解 IBM 及開源技術(shù)和產(chǎn)品功能。


獲得產(chǎn)品和技術(shù)
  • 下載 PHP V5.2.3

  • 下載 symfony

  • 下載 CakePHP

  • 使用 IBM 試用軟件 改進(jìn)您的下一個開發(fā)項(xiàng)目,這些軟件可以通過下載或從 DVD 中獲得。

  • 下載 IBM 產(chǎn)品評估版,并開始使用 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的應(yīng)用程序開發(fā)工具和中間件產(chǎn)品。


討論
  • 參與 developerWorks blog 并加入 developerWorks 社區(qū)。

  • 加入 developerWorks PHP Forum: Developing PHP applications with IBM Information Management products (DB2, IDS)


關(guān)于作者

 

Duane O'Brien 從 Oregon Trail 還只是文本的時候開始,就一直在技術(shù)方面游刃有余。他喜歡的食物是壽司。他還不曾去過月球。

 
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 91久久久久久久一区二区 | 99在线视频观看 | 国产精品视频1区 | 性免费视频 | 欧美精品一区二区三区在线 | 国产一区二区三区视频在线 | 日韩欧美视频一区二区 | 久久久免费精品视频 | 国产97在线 | 日韩 | 国产成人免费在线 | 日韩视频在线一区二区 | 波多野结衣中文字幕久久 | 一区二区久久 | 亚洲精品九九 | 国产一区二区三区免费视频 | 白浆在线 | 色婷婷精品国产一区二区三区 | 国产视频a| 91精品网| 亚洲免费观看视频 | 久久久亚洲一区 | 久久91精品国产91久久跳 | 久久久久久免费电影 | 久久婷婷亚洲 | 精品国产一区二区三 | 91精品国产综合久久精品图片 | 精品无人乱码一区二区三区 | 国产成年人| 色综合久久综合网 | 岛国av一区 | 免费福利在线观看 | 久久男人 | 久久久久国产一区二区三区 | 国产成人精品久久久 | 成人国产精品一区二区免费麻豆 | 日韩精品一二三区 | 精品一级毛片 | 国产精品区一区二区三区 | 女人久久 | 成人在线观看视频网站 | 欧美日韩福利视频 |