1. 圣石小子粤语,别样幸福全集,箭在弦上大结局,我想打死你,星光灿烂猪八戒,菲律宾美人鱼50集国语,神探夏洛克 第四季,市委书记晚上不打招呼调研被拦

      如何使用PHP開發(fā)自己的MVC框架

      時間:2025-09-01 04:43:29 php語言

      如何使用PHP開發(fā)自己的MVC框架

        MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。下面是小編為大家?guī)淼娜绾问褂肞HP開發(fā)自己的MVC框架的知識,歡迎閱讀。

        一、什么是MVC

        MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

        MVC模式的目的是實現(xiàn)一種動態(tài)的程序設(shè)計,使后續(xù)對程序的修改和擴展簡化,并且使程序某一部分的重復(fù)利用成為可能。除此之外,此模式通過對復(fù)雜度的簡化,使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過對自身基本部份分離的同時也賦予了各個基本部分應(yīng)有的功能。專業(yè)人員可以通過自身的專長分組:

        (控制器Controller)- 負責(zé)轉(zhuǎn)發(fā)請求,對請求進行處理。

        (視圖View) – 界面設(shè)計人員進行圖形界面設(shè)計。

        (模型Model) – 程序員編寫程序應(yīng)有的功能(實現(xiàn)算法等等)、數(shù)據(jù)庫專家進行數(shù)據(jù)管理和數(shù)據(jù)庫設(shè)計(可以實現(xiàn)具體的功能)。

        模型(Model) “數(shù)據(jù)模型”(Model)用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法。“模型”有對數(shù)據(jù)直接訪問的權(quán)力,例如對數(shù)據(jù)庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關(guān)心它會被如何顯示或是如何作。但是模型中數(shù)據(jù)的變化一般會通過一種刷新機制被公布。為了實現(xiàn)這種機制,那些用于監(jiān)視此模型的視圖必須事先在此模型上注冊,從而,視圖可以了解在數(shù)據(jù)模型上發(fā)生的改變。

        視圖(View) 視圖層能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示(理論上,這不是必需的)。在視圖中一般沒有程序上的邏輯。為了實現(xiàn)視圖上的刷新功能,視圖需要訪問它監(jiān)視的數(shù)據(jù)模型(Model),因此應(yīng)該事先在被它監(jiān)視的數(shù)據(jù)那里注冊。

        控制器(Controller) 控制器起到不同層面間的組織作用,用于控制應(yīng)用程序的流程。它處理事件并作出響應(yīng)。“事件”包括用戶的行為和數(shù)據(jù)模型上的改變。

        二、為什么要自己開發(fā)MVC框架

        網(wǎng)絡(luò)上有大量優(yōu)秀的MVC框架可供使用,本教程并不是為了開發(fā)一個全面的、終極的MVC框架解決方案,而是將它看作是一個很好的從內(nèi)部學(xué)習(xí)PHP的機會,在此過程中,你將學(xué)習(xí)面向?qū)ο缶幊毯驮O(shè)計模式,并學(xué)習(xí)到開放中的一些注意事項。

        更重要的是,你可以完全控制你的框架,并將你的想法融入到你開發(fā)的框架中。雖然不一定是做好的,但是你可以按照你的方式去開發(fā)功能和模塊。

        三、開始開發(fā)自己的MVC框架

        在開始開發(fā)前,讓我們先來把項目建立好,假設(shè)我們建立的項目為todo,那么接下來的第一步就是把目錄結(jié)構(gòu)先設(shè)置好。

        todo

        雖然在這個教程中不會使用到上面的所有的目錄,但是為了以后程序的可拓展性,在一開始就把程序目錄設(shè)置好使非常必要的。下面就具體說說每個目錄的作用:

        application – 存放程序代碼

        config – 存放程序配置或數(shù)據(jù)庫配置

        db – 用來存放數(shù)據(jù)庫備份內(nèi)容

        library – 存放框架代碼

        public – 存放靜態(tài)文件

        scripts – 存放命令行工具

        tmp – 存放臨時數(shù)據(jù)

        在目錄設(shè)置好以后,我們接下來就要來頂一下一些代碼的規(guī)范:

        MySQL的表名需小寫并采用復(fù)數(shù)形式,如items,cars

        模塊名(Models)需首字母大寫,并采用單數(shù)模式,如Item,Car

        控制器(Controllers)需首字母大寫,采用復(fù)數(shù)形式并在名稱中添加“Controller”,如ItemsController, CarsController

        視圖(Views)采用復(fù)數(shù)形式,并在后面添加行為作為文件,如:items/view.php, cars/buy.php

        上述的一些規(guī)則是為了能在程序鐘更好的進行互相的調(diào)用。接下來就開始真正的編碼了。

        第一步將所有的的請求都重定向到public目錄下,解決方案是在todo文件下添加一個.htaccesss文件,文件內(nèi)容為:

        <IfModule mod_rewrite.c>

        RewriteEngine on

        RewriteRule    ^$    public/    [L]

        RewriteRule    (.*) public/$1    [L]

        </IfModule>

        在我們把所有的請求都重定向到public目錄下以后,我們就需要將所有的數(shù)據(jù)請求都再重定向到public下的index.php文件,于是就需要在public文件夾下也新建一個.htaccess文件,文件內(nèi)容為:

        <IfModule mod_rewrite.c>

        RewriteEngine On

        #如果文件存在就直接訪問目錄不進行RewriteRule

        RewriteCond %{REQUEST_FILENAME} !-f

        #如果目錄存在就直接訪問目錄不進行RewriteRule

        RewriteCond %{REQUEST_FILENAME} !-d

        #將所有其他URL重寫到 index.php/URL

        RewriteRule ^(.*)$ index.php?url=$1 [PT,L]

        </IfModule>

        這么做的主要原因有:

        可以使程序有一個單一的入口,將所有除靜態(tài)程序以外的程序都重定向到index.php上;

        可以用來生成利于SEO的URL,想要更好的配置URL,后期可能會需要URL路由,這里先不做介紹了。

        做完上面的操作,就應(yīng)該知道我們需要做什么了,沒錯!在public目錄下添加index.php文件,文件內(nèi)容為:

        <?php

        define('DS',DIRECTORY_SEPARATOR);

        define('ROOT',dirname(dirname(__FILE__)));

        $url = $_GET['url'];

        require_once(ROOT.DS.'library'.DS.'bootstrap.php');

        注意上面的PHP代碼中,并沒有添加PHP結(jié)束符號”?>”,這么做的主要原因是:對于只包含PHP代碼的文件,結(jié)束標(biāo)志(“?>”)最好不存在,PHP自身并不需要結(jié)束符號,不添加結(jié)束符號可以很大程度上防止末尾被添加額外的注入內(nèi)容,讓程序更加安全。

        在index.php中,我們對library文件夾下的bootstrap.php發(fā)起了請求,那么bootstrap.php這個啟動文件中到底會包含哪些內(nèi)容呢?

        <?php

        require_once(ROOT.DS.'config'.DS .'config.php');

        require_once(ROOT.DS.'library'.DS .'shared.php');

        以上文件都可以直接在index.php文件中引用,我們這么做的原因是為了在后期管理和拓展中更加的方便,所以把需要在一開始的時候就加載運行的程序統(tǒng)一放到一個單獨的文件中引用。

        先來看看config文件下的config .php文件,該文件的主要作用是設(shè)置一些程序的配置項及數(shù)據(jù)庫連接等,主要內(nèi)容為:

        <?php

        # 設(shè)置是否為開發(fā)狀態(tài)

        define('DEVELOPMENT_ENVIRONMENT',true);

        # 設(shè)置數(shù)據(jù)庫連接所需數(shù)據(jù)

        define('DB_HOST','localhost');

        define('DB_NAME','todo');

        define('DB_USER','root');

        define('DB_PASSWORD','root');

        應(yīng)該說config.php涉及到的內(nèi)容并不多,不過是一些基礎(chǔ)數(shù)據(jù)的一些設(shè)置,再來看看library下的共用文件shared.php應(yīng)該怎么寫。

        <?php

        /* 檢查是否為開發(fā)環(huán)境并設(shè)置是否記錄錯誤日志 */

        function setReporting(){

        if (DEVELOPMENT_ENVIRONMENT == true) {

        error_reporting(E_ALL);

        ini_set('display_errors','On');

        } else {

        error_reporting(E_ALL);

        ini_set('display_errors','Off');

        ini_set('log_errors','On');

        ini_set('error_log',ROOT.DS. 'tmp' .DS. 'logs' .DS. 'error.log');

        }

        }

        /* 檢測敏感字符轉(zhuǎn)義(Magic Quotes)并移除他們 */

        function stripSlashDeep($value){

        $value = is_array($value) ? array_map('stripSlashDeep',$value) : stripslashes($value);

        return $value;

        }

        function removeMagicQuotes(){

        if (get_magic_quotes_gpc()) {

        $_GET = stripSlashDeep($_GET);

        $_POST = stripSlashDeep($_POST);

        $_COOKIE = stripSlashDeep($_COOKIE);

        }

        }

        /* 檢測全局變量設(shè)置(register globals)并移除他們 */

        function unregisterGlobals(){

        if (ini_get('register_globals')) {

        $array = array('_SESSION','_POST','_GET','_COOKIE','_REQUEST','_SERVER','_ENV','_FILES');

        foreach ($array as $value) {

        foreach ($GLOBALS[$value] as $key => $var) {

        if ($var === $GLOBALS[$key]) {

        unset($GLOBALS[$key]);

        }

        }

        }

        }

        }

        /* 主請求方法,主要目的拆分URL請求 */

        function callHook() {

        global $url;

        $urlArray = array();

        $urlArray = explode("/",$url);

        $controller = $urlArray[0];

        array_shift($urlArray);

        $action = $urlArray[0];

        array_shift($urlArray);

        $queryString = $urlArray;

        $controllerName = $controller;

        $controller = ucwords($controller);

        $model = rtrim($controller, 's');

        $controller .= 'Controller';

        $dispatch = new $controller($model,$controllerName,$action);

        if ((int)method_exists($controller, $action)) {

        call_user_func_array(array($dispatch,$action),$queryString);

        } else {

        /* 生成錯誤代碼 */

        }

        }

        /* 自動加載控制器和模型 */

        function __autoload($className) {

        if (file_exists(ROOT . DS . 'library' . DS . strtolower($className) . '.class.php')) {

        require_once(ROOT . DS . 'library' . DS . strtolower($className) . '.class.php');

        } else if (file_exists(ROOT . DS . 'application' . DS . 'controllers' . DS . strtolower($className) . '.php')) {

        require_once(ROOT . DS . 'application' . DS . 'controllers' . DS . strtolower($className) . '.php');

        } else if (file_exists(ROOT . DS . 'application' . DS . 'models' . DS . strtolower($className) . '.php')) {

        require_once(ROOT . DS . 'application' . DS . 'models' . DS . strtolower($className) . '.php');

        } else {

        /* 生成錯誤代碼 */

        }

        }

        setReporting();

        removeMagicQuotes();

        unregisterGlobals();

        callHook();

        接下來的操作就是在library中建立程序所需要的基類,包括控制器、模型和視圖的基類。

        新建控制器基類為controller.class.php,控制器的主要功能就是總調(diào)度,具體具體內(nèi)容如下:

        <?php

        class Controller {

        protected $_model;

        protected $_controller;

        protected $_action;

        protected $_template;

        function __construct($model, $controller,$action) {

        $this->_controller = $controller;

        $this->_action = $action;

        $this->_model = $model;

        $this->$model =& new $model;

        $this->_template =& new Template($controller,$action);

        }

        function set($name,$value) {

        $this->_template->set($name,$value);

        }

        function __destruct() {

        $this->_template->render();

        }

        }

        新建控制器基類為model.class.php,考慮到模型需要對數(shù)據(jù)庫進行處理,所以可以新建一個數(shù)據(jù)庫基類sqlquery.class.php,模型去繼承sqlquery.class.php。

        新建sqlquery.class.php,代碼如下:

        <?php

        class SQLQuery {

        protected $_dbHandle;

        protected $_result;

        /** 連接數(shù)據(jù)庫 **/

        function connect($address, $account, $pwd, $name) {

        $this->_dbHandle = @mysql_connect($address, $account, $pwd);

        if ($this->_dbHandle != 0) {

        if (mysql_select_db($name, $this->_dbHandle)) {

        return 1;

        }

        else {

        return 0;

        }

        }

        else {

        return 0;

        }

        }

        /** 中斷數(shù)據(jù)庫連接 **/

        function disconnect() {

        if (@mysql_close($this->_dbHandle) != 0) {

        return 1;

        }  else {

        return 0;

        }

        }

        /** 查詢所有數(shù)據(jù)表內(nèi)容 **/

        function selectAll() {

        $query = 'select * from `'.$this->_table.'`';

        return $this->query($query);

        }

        /** 查詢數(shù)據(jù)表指定列內(nèi)容 **/

        function select($id) {

        $query = 'select * from `'.$this->_table.'` where `id` = ''.mysql_real_escape_string($id).''';

        return $this->query($query, 1);

        }

        /** 自定義SQL查詢語句 **/

        function query($query, $singleResult = 0) {

        $this->_result = mysql_query($query, $this->_dbHandle);

        if (preg_match("/select/i",$query)) {

        $result = array();

        $table = array();

        $field = array();

        $tempResults = array();

        $numOfFields = mysql_num_fields($this->_result);

        for ($i = 0; $i < $numOfFields; ++$i) {

        array_push($table,mysql_field_table($this->_result, $i));

        array_push($field,mysql_field_name($this->_result, $i));

        }

        while ($row = mysql_fetch_row($this->_result)) {

        for ($i = 0;$i < $numOfFields; ++$i) {

        $table[$i] = trim(ucfirst($table[$i]),"s");

        $tempResults[$table[$i]][$field[$i]] = $row[$i];

        }

        if ($singleResult == 1) {

        mysql_free_result($this->_result);

        return $tempResults;

        }

        array_push($result,$tempResults);

        }

        mysql_free_result($this->_result);

        return($result);

        }

        }

        /** 返回結(jié)果集行數(shù) **/

        function getNumRows() {

        return mysql_num_rows($this->_result);

        }

        /** 釋放結(jié)果集內(nèi)存 **/

        function freeResult() {

        mysql_free_result($this->_result);

        }

        /** 返回MySQL操作錯誤信息 **/

        function getError() {

        return mysql_error($this->_dbHandle);

        }

        }

        新建model.class.php,代碼如下:

        <?php

        class Model extends SQLQuery{

        protected $_model;

        function __construct() {

        $this->connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);

        $this->_model = get_class($this);

        $this->_table = strtolower($this->_model)."s";

        }

        function __destruct() {

        }

        }

        新建視圖基類為template.class.php,具體代碼如下:

        <?php

        class Template {

        protected $variables = array();

        protected $_controller;

        protected $_action;

        function __construct($controller,$action) {

        $this->_controller = $controller;

        $this->_action =$action;

        }

        /* 設(shè)置變量 */

        function set($name,$value) {

        $this->variables[$name] = $value;

        }

        /* 顯示模板 */

        function render() {

        extract($this->variables);

        if (file_exists(ROOT.DS. 'application' .DS. 'views' .DS. $this->_controller .DS. 'header.php')) {

        include(ROOT.DS. 'application' .DS. 'views' .DS. $this->_controller .DS. 'header.php');

        } else {

        include(ROOT.DS. 'application' .DS. 'views' .DS. 'header.php');

        }

        include (ROOT.DS. 'application' .DS. 'views' .DS. $this->_controller .DS. $this->_action . '.php');

        if (file_exists(ROOT.DS. 'application' .DS. 'views' .DS. $this->_controller .DS. 'footer.php')) {

        include (ROOT.DS. 'application' .DS. 'views' .DS. $this->_controller .DS. 'footer.php');

        } else {

        include (ROOT.DS. 'application' .DS. 'views' .DS. 'footer.php');

        }

        }

        }

        做完了以上這么多操作,基本上整個MVC框架已經(jīng)出來了,下面就該制作我們的站點了。我們要做的站點其實很簡單,一個ToDo程序。

        首先是在我們的/application/controller/ 目錄下面新建一個站點控制器類為ItemsController,命名為itemscontroller.php,內(nèi)容為:

        <?php

        class ItemsController extends Controller {

        function view($id = null,$name = null) {

        $this->set('title',$name.' - My Todo List App');

        $this->set('todo',$this->Item->select($id));

        }

        function viewall() {

        $this->set('title','All Items - My Todo List App');

        $this->set('todo',$this->Item->selectAll());

        }

        function add() {

        $todo = $_POST['todo'];

        $this->set('title','Success - My Todo List App');

        $this->set('todo',$this->Item->query(' into items (item_name) values (''.mysql_real_escape_string($todo).'')'));

        }

        function ($id) {

        $this->set('title','Success - My Todo List App');

        $this->set('todo',$this->Item->query(' from items where id = ''.mysql_real_escape_string($id).'''));

        }

        }

        接下來就是先建站點的模型,在我們的/application/model/ 目錄下面先建一個站點模型類為Item,內(nèi)容直接繼承Model,代碼如下:

        <?php

        class Item extends Model {

        }

        最后一步是設(shè)置我們站點的視圖部分,我們現(xiàn)在/application/views/目錄下新建一個items的文件夾,再在items文件夾下建立與控制器重Action相同的文件,分別為view.php,viewall.php,add.php,.php,考慮到這么頁面中可能需要共用頁首和頁尾,所以再新建兩個文件,命名為header.php,footer.php,每個文件的代碼如下:

        view.php文件:查看單條待處理事務(wù)

        <h2><?php echo $todo['Item']['item_name']?></h2>

        <a href="../../../items/pic/p>

        <span>Delete this item</span>

        </a>

        viewall.php文件:查看所有待處理事務(wù)

        <form action="../items/add" method="post">

        <input type="text" value="I have to..." onclick="this.value=''" name="todo"> <input type="submit" value="add">

        </form>

        <br/><br/>

        <?php $number = 0?>

        <?php foreach ($todo as $todoitem):?>

        <a href="../items/view/<?php echo $todoitem['Item']['id']?>/<?php echo strtolower(str_replace(" ","-",$todoitem['Item']['item_name']))?>">

        <span>

        <?php echo ++$number?>

        <?php echo $todoitem['Item']['item_name']?>

        </span>

        </a><br/>

        <?php endforeach?>

        add.php文件:添加待處理事務(wù)

        1

        <a href="../items/viewall">Todo successfully added. Click here to go back.</a><br/>

        .php文件:刪除事務(wù)

        1

        <a href="../../items/viewall">Todo successfully d. Click here to go back.</a><br/>

        header.php:頁首文件

        <html>

        <head>

        <title><?php echo $title?></title>

        <style>

        .item {width:400px;}

        input {color:#222222;font-family:georgia,times;font-size:24px;font-weight:normal;line-height:1.2em;color:black;}

        a {color:#222222;font-family:georgia,times;font-size:24px;font-weight:normal;line-height:1.2em;color:black;text-decoration:none;}

        a:hover {background-color:#BCFC3D;}

        h1 {color:#000000;font-size:41px;letter-spacing:-2px;line-height:1em;font-family:helvetica,arial,sans-serif;border-bottom:1px dotted #cccccc;}

        h2 {color:#000000;font-size:34px;letter-spacing:-2px;line-height:1em;font-family:helvetica,arial,sans-serif;}

        </style>

        </head>

        <body>

        <h1>My Todo-List App</h1>

        footer.php:頁尾文件

        1

        2

        </body>

        </html>

        當(dāng)然還有一個必不可少的操作就是在數(shù)據(jù)中中建立一張表,具體代碼如下:

        CREATE TABLE IF NOT EXISTS `items` (

        `id` int(11) NOT NULL AUTO_INCREMENT,

        `item_name` var255) NOT NULL,

        PRIMARY KEY (`id`)

        ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

        至此一個使用MVC開發(fā)的網(wǎng)站就開發(fā)完成了。


      【如何使用PHP開發(fā)自己的MVC框架】相關(guān)文章:

      如何使用PHP框架01-21

      PHP MVC框架路由學(xué)習(xí)筆記12-03

      如何使用PHP開發(fā)高效的web系統(tǒng)03-18

      用Composer構(gòu)建自己的PHP框架09-20

      php開發(fā)環(huán)境的搭建和使用01-30

      如何配置PHP開發(fā)環(huán)境12-21

      PHP.MVC的模板標(biāo)簽系統(tǒng)10-16

      如何使用php中session10-08

      教你如何使用php的session01-19

      主站蜘蛛池模板: 电影血战台儿庄完整版免费| 大圣归来西瓜| 漂亮的妹妹中字ID| 《特殊牙医诊所》完整版| 芈月传在线免费观看| 原神旅行者插雷电将军的游戏 | 游樣3| 卡贾基 豆瓣| 高潮电影免费观看中| 军师联盟2虎啸龙吟在线| 迷情的危险| 饥饿的瘦6| 长歌行免费观看完整版| 电影红嫁衣在线高清免费观看全集| 我的巨乳继母| 十二寡妇肉床艳史完整版在线播放| 老师你下面太紧进不去动态图| 入室强奸在线免费观看| 上海一大学教师捅死同事被刑拘| 千面女郎| 《法国空乘2| 雷神公司副董事坠机身亡| 法国版《女超人:麦乐迪》| 健身教练81话你现在样子很美| 龙门镖局2电视剧全集| 美女在线观看完整免费高清原声满天星 | 千山万水mv| 《私人航空》法国电影2019| 双子星公主第二部中文版| 高清《重选纨绔当爹》短剧在线观看 | 《情欲按摩院》未删减版| 黎明之前电视剧在线观看免费全集 | 电影血战台儿庄完整版免费| 喜宝电影在线观看完整版| 法国空乘2013法版英语| 大秦赋全集在线观看免费| 金牌销售的秘密3hd中字| 艾薇儿最新mv| 杨恭如被污辱的电影| 《品味人生》完整版在线观看| 龙虎山张天师电影在线观看| 内蒙二人台光棍哭妻| 《高压监狱2》在线观看| 破产姐妹 第三季| 蜘蛛侠3英雄无归在线免费观看| 日本混血大学生体验按摩电影| 冰湖行动全集观看| 我的后半生45剧情介绍| 哥布林洞窟在线观看免费带翻译| 女角斗士3满天星版| 裸zhao| 21世纪爱情指南全8集免费观看高清版| 美丽的小蜜桃4中国版演唱者是谁| 金银梅5一10普通话2.| 封神英雄榜第二部全集| 黄梅戏秋风飒飒| 无憾坎贝奇完整版视频在线观看| 冬暖花会开电视剧全集免费观看| 《八佰》电影免费观看| 农场保卫战满天星完整版| 萝莉的时间| 我的流氓爱人 电影| 私人助理2法国版电影免费看 | 荆门市| 且试天下电视剧完整版| 离婚女人电视剧| 战狼6妈妈最美| 死生时刻| 善良的嫂子韩剧| 爱我几何无删减在线观看完整版| 封神英雄榜2第二部| 八楼的二路汽车| 美味快递员2特殊待遇| 骚麦 小莫| 那山那人那狗电影| 侄女的开发日记| 与凤行电视剧在线观看| 百万新娘之爱无悔53| 男女一起愁愁愁在线观看| 鬼灭之刃无限城篇免费完整版| 九九龟一| 日本年轻的继拇3| 女刑警2肉体完整版色吗| 走到尽头| 美国空乘伦理4| 爱的奇迹电视剧| 一千滴眼泪电视连续剧在线观看| 女员工5的付出中字| 鸭王2迅雷下载| 神功元气袋| 罗丽星克莱尔成人版HD版| 香草美人在线观看| 秋元まゆ花| 《替父还债十日》电影在线观看| 木下凛凛子在线观看| 《爱在离别时黄奕》免费观看| 蓝色隐身帽子| 极道之妻情炎| 漫画故事韩剧李采潭免费观看| 法国监狱电影完整版| 凶降喜讯电影| 马永贞之英雄血国语| 公的浮之手| 京城大状师主题曲| 高清《百万人推理》电视剧| 爱我几何免费完整观看高清| 低苦艾乐队| 庆余年第二季免费完整| 维修师傅艳遇韩国观看| 人去楼空| 超凡蜘蛛侠| 跟部长出差的温泉之旅在线观看| 天眼tvb| 白峰美羽免费在线观看| 爱情中毒| 锡盟蒙中| 神奇动物在哪里字幕| 年轻的母亲4韩剧免费中文版| 禁忌2年转一代| 西瓜英文| 许我荣耀电视剧更新| 男生和女生在一起愁愁愁电视剧在线观看30集| 初尝禁果| 仙逆104全集完整正版| 九首歌完整版在线看| 下北阳光灿烂的日子| 雁南飞刀郎| 女狙击手满天星| 意大利电影爱情与秘密| 中国达人秀卓君稻草人| 金沙县| 爱妻电影网| 黄yyid频道| 阳光普照| 迪加噢特曼国语| 印度一头野猪大闹超市| 唐人街探案3 MAGNET| 喜爱夜蒲 歌曲| 平凡之路免费观看完整版电视剧| 《掌中之物》西班牙| 摩登原始人英语| 电视剧青年医生| 麦金尼满天星免费观看| 神探夏洛克 电影| 爱情真善美40| 塔日酒店电影免费观看高清版 | 爱情电影网 佐山爱| 韩国电影游泳馆特殊待遇| 喜欢你 电影| 风暴来临在线观看完整版| 理伦电影第2季| 小羊肖恩第二部| 军火女王 第二季| 韩国三级片男按摩师| 澳门风云2 粤语| 风水相师断命:一眼定吉凶短剧全集| 年经母年| 我推的孩子樱花在线观看| 剑道尘心剧场版免费播放| 瓜达卢佩的玫瑰无删减| 珠海航展2024年门票预订| 牙冠修复过程图解| 甲种公牛免费看| 《奇迹》在线观看免费完整版| 《邻家姐姐》第二季| 维修师傅的艳遇| 我是刑警第六集| 墨缘太极纯音乐加长版| 美国伦理《生殖按摩》免费观看 | 酒店刺激战场免费观看| 在我消失前| 三级剧情片| 大牛战狼6免费观看高清版下载| 嬢王 virgin| 哈尔滨夜店| 掐曲30分钟的痛| 李胜素京剧唱段| 大人物免费观看完整版| 美容院3:特殊待遇| 被夫上司強暴人妻中文字幕| 铁梨花剧情介绍| 电视剧捍卫者在线观看| 《睫毛膏4》美国电影在线观看| 恶之华在线观看| 得知学费5万哭成泪人| 公浮之手中字9谁演的| 无所畏惧电视剧免费| 亲爱的小孩电影| 男生女生一愁愁愁在线观30集| 《裸乳按摩》在线观看 | 《再见莫妮卡》| 家庭主妇肉身归属| 哥谭第二季| 不穿内裤的女老师电影| 李娜年终总决赛| 善良的岳母娘| 瓜达卢佩的玫瑰女邻居完整版| 追光的日子电视剧免费观看| 挣扎吧当亚君| 暴躁46集全免费剧情| 黛玉传剧情| 电影美国爸爸要播种 | 新奥特曼列传| 斗罗大陆1动漫免费观看| 深空动漫| 日本电影和部长一起出差| 章莹颖父亲当司机月薪2050元| 天海翼女检察官无删减版 | 侄女的开发日记笫三季在线观看| 伦敦桥行动| 酒店激战第1-5集在线观看人生第一次| 高清《雨天》谍战片免费观看 | 《花嫁高柳家》动漫完整版播放| 我在他乡挺好的一共多少集| 韩剧《我的健身教练2》免费播放全集| 乳品分类| 麦乐迪和爸爸的电影| 电视剧温柔的谎言| 韩国电影公公的浮云之手| 无敌幸运星| 思春期的钢铁处女| 《非洲部落》完整版| 一路向西观看地址| 警察锅哥播放电视剧一共40集 | 雪中悍刀行电视剧上映| 日本混血女大学生按| 《苏醒》短剧免费观看| 高清《险恶》完整版在线观看 | 女律师的堕落在线观看| 琪琪电影网午夜理论片717西瓜| 需要爸爸的种子电影| 黑帮少爷爱上我在线观看| 遂平县| 世界上水最多的B| 倔强の驱魔师1-4集顺序| 相扑避难所| 海上嫁女记剧情| 动漫《落魄贵族琉璃川》免费观看 | 山炮进城| 天蓬元帅之大闹天宫| 男按摩师韩剧| 利刃出鞘3| 深入敌后3| 暴躁老妈国语版免费观看| 电视剧流金岁月港台剧| 《xl司令》第一季| 乌云之上免费播放在线观看| 韩剧蓝色隐身帽子| 不要向下看百度影音| 偶像运动会120725| 比得兔第一季免费观看全集| 要爸爸播种在线观看| 历劫惊途 第二季全集观看| 第一次做aj电视剧| 电影窗外| ⅹl司第一季在线观看免费| 爱到永远 谢雨欣| 高清判处勇者刑未删减| 凯·帕克的忌讳1| 财阀家的小儿子第4集| 白蛇:浮生| 青面修罗免费观看| 郝板理子电影免费观看| 隔壁的邻居很美味免费观看| 我们在梦开始的地方| 《overflower》真人版动漫全集免费!| 仙逆73| 爱我多深没删除版| 阴斗9.1免费版西瓜| 女警爱作战大结局| 《理发店的特殊待遇》| 康斯坦丁| 出轨的味道在线观看| 财经聪哥| 免费三级理论片我的继母| 命中婚劫未删减| 爱的多米诺| 日本伦理片女律师的多落| 特战荣耀在线观看免费完整版西瓜 | 女按摩师3| 杀破狼国语高清| 东宫电视剧全集免费观看完整版高清| 疯狂粉丝王下载| 机器侠电影| 绅士的品格 手机| 女儿国3满天星版| 高清海达| 舒克和贝塔免费| 第一次的滋味免费观看电视剧| 泰山1995版| 电视剧樱桃正红| 特别酒店2日本索立信| 羚羊号历险记| 吕布戏貂蝉| 正在播放: DRPT-048 春药曝露性爱 仓田真央带乳头导线与前女友相见 十年来同 | 眼泪女王| 酒店激战第1-5集免费观看伊丽莎白尖| 快播韩国电影| 白峰电影网免费观看| 朋友的妈妈在线免费| 电影《法国空少》免费观看 | 指环王2快播| 与小仙女混居的日子| 极品家丁电视剧| 我爱发明越野车| 儿媳妇的味道| 电影圣特罗佩斯的姑娘们在线观看 | 雨春电影| 减肥工具| 嘼皇VICTORYDAY愤水| 秘女搜查官波多野结衣| 斗罗大陆208| 韩剧《无法抗拒的你》全集| 村妓经典k8| 电影壮志凌云女版满天星法版在线看 | 好日子在线观看免费完整版视频| 山西电视台少儿频道| 莫莉5特别酒店| 中央10台在线直播| 让爹在弄一次吧第二季| 李双江歌曲下载| 真相2021电视剧在线观看| over flow,樱花| 教官的小妖精又凶又残电视剧| 《角斗士3满天星版》| 马英九民调| 短剧蛇园全集免费播放| 黑衣人2高清完整版国语| 暴雪时分电视剧免费观看完整版| 柳熙烈的写生簿权志龙| 龙里县| 莉娜安德森在线观看| 大唐情史| 《伊波拉病毒2》电影| 巨乳高清版在线| 春雨电影大全免费观看动漫版视频| 年轻小姨子| 捉妖记电影在线观看| 《密会》| 麻木的海蛰| 甄嬛传71集在线观看| 恋爱先生45集全集免费下载| 十七岁高清完整版在线观看视频| 饮食男女| 钢壳都市| 1980美式保罗1-4| 黑道大佬第2季免费观看| 女大学生特殊按摩| 笼中女囚电影完整版| 黑暗森林2023| 非诚勿扰聂倩| 精英律师电视剧全集免费观看完整版| 爸爸我想要你的种子| 一眉道人电影| 迈阿密风云电影| 《瓜达卢佩玫瑰》在线播放 | 感官的世界| 万花开遍不及你归来短剧大结局| 混战两姐妹电影版免费观看| 通天狄仁杰| 橘子红了电视剧全集在线观看| 战狼6免费观看下载高清| 老司机免费福利视频| 花田喜事2010粤语| 伦理《法国护士长》| 古船女人和网| 降魔的国语| 电视剧地雷战传奇| 河北梆子辕门斩子全集| 风水弃少:改运旺家完整版观看| 分手大师| 佐罗满天星版在线播放哪一年拍的 | 漂亮的妈妈7字开头| 陷阱在线观看高清免费版| 《风月宝鉴》完整版在线看| 今日宜喜欢短剧| 大奉打更人25集免费播放剧情介绍| 高清写写画画| 四面佛电视剧免费观看全集| 四位大学位按摩记的背景故事| 安娜贝尔3| 秘密搜查官の大桥未久| 菲梦少女第三季正片| 《家庭矛盾》4麦乐迪| 封神英雄榜第二部1| 82版杨敏思1-5集全集| 当我遇上你无处可逃| 倒数第二次恋爱| 父女因为爱情| 相门嫡女全集免费| 刺客伍六七第三季免费观看| 韩国电影理发店的特别待遇| 韩剧苦尽甘来遇见你| 楼外楼电视剧| 杨敏思1一5集电视剧免费| 泰罗奥特曼国语版全集| 年轻的嫂2| 八戒八戒8| 珠帘玉幕电视剧赵露思免费| 六指琴魔 电视剧| 玉奴娇有电视剧在线观看 | 新水浒传 高清| 吴雪雯三点未删减版性迷宫| 林风短剧| 娱乐百分百20130221| 再来一次在线观看电影| 梦回鹿鼎记| 《情感价值》| 小凤新婚完整版免费观看电影高清| 刺客伍六七第6季免费观看完整版| 宜都市| 电影一路向西在线观看 | 《超女麦乐迪》在线播放地址| 拒绝爆冷 大头王者归来打疯了 | 侏罗纪世界1电影免费版高清| 激斗战车国语| 上课时胸罩不小心掉下来的事| 需要爸爸播撒种子电影播放| 西施成人版| 浮山县| 旗开得胜下一句怎么接| 反抗之真心英雄剧情| 陈楚河曾把脚放在朱珠腿上| 《束缚游戏》在线观看第一季免费1~3 | 千鹤道长出山免费观看| 哪吒之魔童降世在线观看| 满天星电影在线观看完整免费| 两个人的世界全集免费观看完整版| 白蛇:缘起电影| 保德县| 郝板栗《千金小姐》无删减全集| 耀眼的你啊电视剧免费观看| 常高兴的酸甜苦辣电视剧| 《沟壑难填》美国| 十佳球背景音乐| 婚巢电视剧在线观看| 新金银悔5一10普通话| 热血高校2在线观看| 电影私人航空免费观看全集高清版下载| 黄子华栋笃笑2018| 韩剧《我的女助理》| 择天记第三季| 电视剧咱们结婚吧全集| 这才是马云| 美国禁忌1年转一代| 七大罪免费观看动漫| 独闯无底洞84版在线播放| 纸钞屋在线观看免费观看完整版 | 监狱学园动漫全集观看| 变形记20140623| 3d柔铺团之极宝乐鉴宝鉴电影中文在线观看演 | 出差和讨厌的社长同住最可恶的部长| 免费观看西川王电视剧| 爱情填满空白第二季完整版| 天美影院电视剧在线播放| 花与蛇1全集| 食为奴国语全集| 迷人的空姐| 常在你左右免费观看国语| 法国空乘2013法版英语| 短道速滑王蒙| 袁娅维 滚滚红尘| XL司令第二季真人版在线观看 | 温柔地杀我电影| 凯登克罗斯HD版完整版| 降头在线观看| 倾城绝恋电视剧全集免费观看| 蜜桃成熟时3d下载| 花开如梦电视剧免费播放40集| 站着再来一次26集全在线观看 | 醉酒迷奸电影在线播放| 大河儿女 电视剧| 小伙爱上兄弟妈妈原版| 长相思二电视剧在线观看免费版 | 电视剧家门的荣光| 暴躁少女全集免费播放| 光明与黑暗| 斩神之凡尘神域| 凡人修仙传30集完整版| 日本年轻的继拇3| 漂亮的保姆2完整版免费播放| 尖峰时刻2国语版| 女员工的待遇中文| 星际宝贝在线观看| 韩剧《上司的秘密》电视剧| 向井蓝免费观看| 永乐大帝电视剧全集免费观看 | 淑女情缘| yy6680| 一点就到家电影| 今天有七星连珠吗| 插曲30分钟电视剧免费观看| 生化危机3 电影| 《梅根2.0》| 买乐迪女超人| 红雨电影| 判处勇者刑全集观看| 姐姐的婚礼| 铿锵锵锵锵锵免费观看电视剧| 黄奕演过电视剧| 《八尺夫人意大利满天星》免费看| 电影《为了升职献身》| 电视剧小白菜奇案| 村枝| 所有奥特曼全集| 难忘今宵2024央视春晚| 强轩的电影作品大全| 灰姑娘动画片国语版2| 荒野求生21天无删减版什么时候出| 无间电视剧全集40集免费观看| 性女传奇百度影音| 张绍刚撒贝宁| 鸦片战争演义| 色之恶鬼| 美貌的社长夫人在线观看第三季 | 公之浮之6| 咱们结婚了吧| 朋友的妈妈中语版| 事物的秘密水池一段是多少| 对不起我爱你国语版全集| 金银1-5美国| 五十度灰 下载| 奇妙的发型屋2免费播放| 嫁入豪门:少奶难当短剧全集| 毛阿敏北京演唱会| 自贡市| 《隔壁女邻居》完整版| 德化县| 欣德·拉贾布之声| 天注定免费完整版在线| 执行秘书电影在线观看| 雪中悍刀行40集免费| 千金奴隶在线观看免费版电视剧| 母亲母亲演员表| 朋友的妈妈在线观看完整版| 漂亮的小瘦子| 沙琪玛妈妈吃蜡瓶糖冰| 女朋友的丰满妈咪| 《法国空乘2018法版》观看| 新精武门周星驰| 默杀电影免费播放在线观看| 黑执事第三季全集| tobu4| 舞出我人生周楚楚| 18岁电影| 人猿泰山意大利在线观看完整满天星 | 《法国空姐2023版》| 宝贝宝贝我爱你 陈兴瑜| 男女一起免费观看高清完整版电视剧| 精武家庭| 破晓之爱中文版| 维修师傅的遇艳在线观看伦理片| 意大利电影短情欲在线播放| 夫妻本是林中鸟短剧全集免费观看| 白嫖者联盟在线观看免费观看最新版| liumyanyuji| 大秦打更人电视剧免费观看| 钟汉良版天龙八部| 雨花石mv| 《呕吐实验室》免费观| 密室逃脱0713体验版免费| 浪漫风暴| 战狼6妈妈版免费资源| 铜铜铜铜铜铜钢免费| 呼唤生活俄剧| 隋唐英雄未删减版全集| 防火墙5788下载| 《麦乐迪女超人》完整版在线观看视频 | 《猎毒人》电视剧| 母亲5集全集免费观看完整版| 方子传 韩国完整版| 不当军事行为满天星在线观看| 荷尔蒙6美国| 高清为你遗憾| 《香港奇案之吸血贵利王》电影| 灿烂人生国语版| 女斯巴达2新开始在线观看免费下载| 城中之城电视剧全集在线观看免费| 隔壁的邻居很美味免费观看| 疯狂厨房2双人3-5主题曲| 免费看斗罗大陆| 啄木鸟《女拳击手2满天星版》| 东北女不戴套在线看| 《妻子去加班的夜》中文翻译| 迷离档案粤语| 金银梅5普通话国语版| 扫黑风暴手机在线观看| 《情感价值》| 水饺皇后未删减| 从海底出击第一季| 坎贝奇三部曲免费版观看| 《哪吒3》在线观看| 暴躁老妈46集免费播放高清版电影 | 王守英是仙女| 三姐妹瑜伽健身4免费| 刑讯女烈| 从结婚开始恋爱免费播放电视剧| 现在和你相爱的人在一起吗完整版 | 西游伏妖篇 百度云| 白峰电影高清在线观看| 罗马的房子主题曲| 海洋之恋番外篇| 女状元:文武双全惊天下全集免费 | 教授小星| 伦理电影瓜达卢佩的玫瑰| 回魂之夜电影| 兄妹在客厅当父母2上映时间 | 濑亚美莉作品集| 中字和丈夫的下属相处之道| 黑帮大佬365日| 手机电影在线播放| 一代女皇艳史| 罗甸县| 插曲的痛全集免费| 再见陌生人| 天若有情 刘德华| 欢乐英雄之少侠外传| 日剧《和讨厌的部长》中字| 女版战狼6泰国版高清| 韩版恶作剧之吻2| 温柔的背后吻戏| 日本电影《特殊游泳老师》的编剧是 | 猎狐电视剧| 小鲤鱼跳龙门免费| 别墅轮换5攻略免费观看电视剧| 特殊美容院待遇免费在线观看 | 非诚勿扰 2| 驯服小胰子2| 美味快递员的特殊待遇在线观看| 狂飙免费观看全集完整版高清| 日和 中文配音| 女超人精彩片段合集| 妲己np从小被c到大| 女人公敌第四季| 门事件曝光国产在线| 夜天子电视剧免费观看全集| 禁忌4年转一代中文字母| 全金属外壳在线观看完整版免费| 我是刑警免费高清播放在线观看| 向东是大海百度影音| 刘嘉玲被绑照片| 战狼6欧式少女免费观看高清| 开关游戏怎么玩| 狙击蝴蝶电视剧免费观看完整版| POREN 19学生| 和大胸大乳继拇做爰2| 激战丛林免费在线观看 | 黑白配高清中文完整版| 八戒八戒免费高清完整版| 二泉映月课文朗读| 机智的监狱生活| XL司令全集在线观看免费| 《不正经的魔术讲师与禁忌教典》| 纯爱情电影| 向前生活第七季免费观看高清| 《前度》电影免费观看| 年轻的瘦了3| 我朋友的年轻搜子8| 男与女完整版电视剧| 高清昨天| 非诚勿扰于之飞| 《天字号监狱》电影在线观看免费高清 | 19岁大学生真人观看电视剧呀| 鹿鼎记陈小春版免费观看国语| 行尸走肉第三季13| 活死人军团在线播放| 你好生活第三季| 按摩店的待遇1电影| 四川妹子| 赖汉的幸福指数| 意大利电影我想要爸爸的种子在线观看| 小草青青免费观看完整版| 王宝强春晚三个节目| 法国空姐2019| 激情燃烧的岁月主题曲| 大林寺桃花古诗| 名侦探柯南601| 东京塔之越南女兵俘虏| 险恶的绣感完整版| 单亲妈妈4免费高清完整版观看| 命运交响曲迅雷下载| 上海电视台节目预告| 《总统》星克莱尔1997年满天星在| 部长到我家| 爱在有情天| 黄曼巴罗伊| 许愿神龙免费观看完整版在线观看| 三年中国中文高清免费观看| 爸爸播种籽2最新版更新| 美女在线观看完整版电视剧| 挡不住的风情在线观看| 酷吧电影网| 白石茉里奈| 罗丽星克莱尔经典全集 | 日本搞笑整人节目| 坎贝奇《品味人生无憾》完整品味人| 入室暴行魔电影免费观看高清 | 阿娇张开双腿实干十三分钟| 不文女学堂 蒙嘉慧| 人猿泰山主演1995版| 坎贝奇无憾| 艾跃进三个不解之谜| 燕窝多少钱一斤2023年价格| 时代夏令营2免费观看完整版| 《丛林肉搏》在线播放| 金牌销售的秘密HD| 我和厄尔以及将死的女孩| 加里森敢死队| 黑道大佬第一季免费观看国语版| 她在丈夫面前被搬运工耍了 | 小敏家电视剧| 云画的月光免费完整版在线观看| 金镖黄天霸| 姐妹牙医 在线| 金银梅7普通话版免费观看| 特殊的美容院| 美丽的蜜桃电影| 周生如故在线播放| 我要爸爸种子美国电影完整版| 奔跑吧兄弟第三季完整版免费| 时间裂缝在线观看| 老师丝袜| 修理工的艳遇陶| 财神客栈| 情欲世界| 高清《特权》电视剧| 《需要爸爸播种美国》演员全集| 神马电影《女销售》| 战神带娃:奶爸人生短剧全集| 高清《戴拿奥特曼》免费观看| 斗罗大陆190全集免费完整版| 美丽妻子替夫还债| 炸天小姐1983年在线观看| 金瓶梅1-5电影在线观看完整版| 黑暗荣耀第二季网盘| 西虹市首富 电影| 幽冥电影| 我的游泳女教练在线播放| 珠光宝气国语版| 姐妹牙医赤板栗完整版在线播放免费| 印度19名官员被热死| 美妙发型屋1| 喜羊羊与灰太狼心世界奇遇| 屋内有人电影| 他是谁电视剧免费观看完整版国语| 传说中的七公主| 酒店1-70集| 易建联29分| 西出玉门电视剧免费看| 林风短剧免费全集播放| 家庭教师动漫全集4集| 《双乳丰满的女学生》中文| 医院特殊待遇5中文版免费阅读| 《终极斗士1》电影免费观看| 关于爱电影高清在线观看| 使徒行者23| 刘罗锅别传| 我想要爸爸的种子| 玉女心经3在线观看完整版免费版电视 | 真心英雄| 陆贞传奇19| 《家政老师》免费观看完整版视频 | 《羞耻(克罗地亚版) 第三季》| 黑白配国语版超清1080p高清美国娃娃脸| 《杰顿魔物娘》动漫在线看| 电影借种| 龙之心2| 飘渺尊之旅| 义姐是不是良喂养1-2集动漫| 电视剧妻子免费观看| 蜜桃成熟33d全集| 睫毛膏2成人片| 水浒传86版免费观看| 海外行动电视剧免费观看 | 绝世弃少逆袭:成传奇全集免费| 年轻人到底有多爱辣条| 迷人的保姆2在线看| 战狼6欧式少女版资源在哪里| 别想打扰我学习| 放映完整版电影| 西藏锅庄| 舞出我人生2迅雷下载| 福海县| 总统之夜| 冰河剧集小妈| 邪恶帝国的兴起| 与年轻岳母的那些年在线| 宁安如梦电视剧免费观看全集播出 | 爱情真善美全集80| 追鱼传奇全集| 法国空姐2019满天星法版| 爱丫爱丫全集国语在线看 | 善良的女儿| 《空中决战》电影| 新审死官粤语| 电影种马猎人在线观看完整版| 原来你也在这里mv| 一起来看流星雨12| 孤掷一注免费高清观看| 新员工2在线观看完整版电影| 上海滩赌圣国语| 国王在冬眠在线观看全集电影 | 被孙小果用牙签扎的人现状| 毕打自己人剧情| 东北大叶芹的功效| 秋霞电影午夜| 三年大国语高清免费看| K-POP:猎魔女团未删减| 世界奇妙物语2012| 一路狂奔电影完整版| 《花与蛇牙医》在线观看 | 斗罗大陆免费完整观看197| 电锯人免费观看完整版| 八戒8免费观看完整版| 小蜜桃6观看免费高清版电视剧 | 行尸走肉 美剧| 强殖装甲动画| 爱我多深电影完整版播放| 国产伦孑沙发午休精品 | 美丽的小蜜桃在线观看电视剧免费 | 电影心理罪| 善良的嫂子2字巴巴鱼汤饭| 《特殊的精油按摩》6| 余罪第三季在线观看完整高清| 酒店激战1-5集免费播放人生第一次 | 陪你一起老歌词| 插曲的痛30高清| 让子弹飞完整版电影| 英明果断打一正确生肖| 地位变 改变土妹子的纯洁异新交往| 天地英豪第二部| 禁忌5未删减版| 一个可以在线观看的免费| 没有秘密电视剧| 《战国》| 强伦睡着的妺妺| 《急诊护士》法国版电影在线播放完| 哪吒之魔童降世免费观看| 《丈夫邀部长来家吃饭》日剧中文版2. | 九霄龙帅电视剧全集| 恋上你的床国语| 电视剧风筝全集剧情简介| 善良的女邻居4| 坎贝奇的电影在线观看 1080P| 《老公的秘密》大结局| 日剧大度免费观看完整版高清| 授她以柄电视剧免费播放| 囧妈西瓜影音| 房东女2| 日本金银梅1-5普通话第二级 | 三国演义全集在线观看|