黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

模板引擎

渲染驅動

EasySwoole 引入模板渲染驅動的形式,把需要渲染的數(shù)據(jù),通過協(xié)程客戶端投遞到自定義的同步進程中進行渲染并返回結果。為何要如此處理,原因在于,市面上的一些模板引擎在 Swoole 協(xié)程下存在變量安全問題。例如以下流程:

  • request A reached, static A assign requestA-data
  • compiled template
  • write compiled template (yield current coroutine)
  • request B reached,static A assign requestB-data
  • render static A data into complied template file

以上流程我們可以發(fā)現(xiàn),A 請求的數(shù)據(jù),被 B 請求給污染了。為了解決該問題,EasySwoole 引入模板渲染驅動模式。

組件要求

  • easyswoole/spl: ^1.0
  • easyswoole/component: ^2.0

安裝方法

composer require easyswoole/template

倉庫地址

easyswoole/template

基礎實現(xiàn)原理講解

實現(xiàn)渲染引擎

<?php
class R implements \EasySwoole\Template\RenderInterface
{
    public function render(string $template, ?array $data = null, ?array $options = null): ?string
    {
        return 'todo some thing';
    }

    public function onException(\Throwable $throwable, $arg): string
    {
        return $throwable->getMessage();
    }
}

舊版本 Template (1.1.0 之前版本) 實現(xiàn)渲染引擎如下:

<?php
class R implements \EasySwoole\Template\RenderInterface
{
    public function render(string $template, ?array $data = [], ?array $options = []):?string
    {
        return 'todo some thing';
    }

    public function afterRender(?string $result, string $template, array $data = [], array $options = [])
    {
        // TODO: Implement afterRender() method.
    }

    public function onException(Throwable $throwable, $arg):string
    {
        return $throwable->getMessage();
    }
}

在自定義 HTTP 服務中調(diào)用渲染引擎

<?php
require_once __DIR__ . '/vendor/autoload.php';

class MyRender implements \EasySwoole\Template\RenderInterface
{

    public function render(string $template, ?array $data = null, ?array $options = null): ?string
    {
        return "your template is {$template} and data is " . json_encode($data);
    }

    public function onException(\Throwable $throwable, $arg): string
    {
        return $throwable->getTraceAsString();
    }
}

$renderConfig = \EasySwoole\Template\Render::getInstance()->getConfig();

/*
 * 可選配置
$renderConfig->setTempDir(getcwd()); // 設置 渲染引擎驅動 Socket 存放目錄,默認為 getcwd()
$renderConfig->setTimeout(3); // 設置 超時時間,默認為 3s,不建議修改
$renderConfig->setServerName('EasySwoole'); // 設置 渲染引擎驅動服務名稱,不建議修改
$renderConfig->setWorkerNum(3); // 設置 渲染引擎服務工作進程數(shù),默認為 3,不建議修改
 */

$renderConfig->setRender(new MyRender()); // 設置 渲染引擎

$http = new swoole_http_server("0.0.0.0", 9501);
$http->on("request", function ($request, $response) {
    $ret = \EasySwoole\Template\Render::getInstance()->render('index.html', ['easyswoole' => 'hello']);
    $response->end($ret);
});

// 調(diào)用渲染引擎
\EasySwoole\Template\Render::getInstance()->attachServer($http);

$http->start();

舊版本 Template 組件(1.1.0 之前)在自定義 HTTP 服務中調(diào)用渲染引擎時,實現(xiàn)渲染引擎接口的方法有些許不同,詳細請看上文實現(xiàn)渲染引擎。

重啟渲染引擎

由于某些模板引擎會緩存模板文件,導致可能出現(xiàn)以下情況:

  • 用戶 A 請求 1.tpl 返回 'a'
  • 開發(fā)者修改了 1.tpl 的數(shù)據(jù),改成了 'b'
  • 用戶 B、C、D 在之后的請求中,可能會出現(xiàn) 'a'、'b'兩種不同的值

那是因為模板引擎已經(jīng)緩存了 A 所在進程的文件,導致后面的請求如果也分配到了 A 的進程,就會獲取到緩存的值

解決方案如下:

  • 1: 重啟 EasySwoole 服務,即可解決
  • 2: 模板渲染引擎實現(xiàn)了重啟方法 restartWorker,直接調(diào)用即可
Render::getInstance()->restartWorker();

用戶可以根據(jù)自己的邏輯,自行調(diào)用 restartWorker 方法進行重啟。

重啟渲染引擎使用示例

例如:用戶可以在控制器中新增 reload 方法重啟渲染引擎:

1、實現(xiàn)自定義渲染引擎,新建 App\RenderDriver\MyRender.php 文件

<?php

namespace App\RenderDriver;

class MyRender implements \EasySwoole\Template\RenderInterface
{
    public function render(string $template, ?array $data = null, ?array $options = null): ?string
    {
        return "your template is {$template} and data is " . json_encode($data);
    }

    public function onException(\Throwable $throwable, $arg): string
    {
        return $throwable->getTraceAsString();
    }
}

舊版本 Template 組件(1.1.0 之前)實現(xiàn)自定義渲染引擎接口的方法和最新穩(wěn)定版本有些許不同,詳細請看上文。

2、注冊渲染引擎服務

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\Template\Render;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        $renderConfig = \EasySwoole\Template\Render::getInstance()->getConfig();

        /*
         * 可選配置
        $renderConfig->setTempDir(getcwd()); // 設置 渲染引擎驅動 Socket 存放目錄,默認為 getcwd()
        $renderConfig->setTimeout(3); // 設置 超時時間,默認為 3s,不建議修改
        $renderConfig->setServerName('EasySwoole'); // 設置 渲染引擎驅動服務名稱,不建議修改
        $renderConfig->setWorkerNum(3); // 設置 渲染引擎服務工作進程數(shù),默認為 3,不建議修改
         */

        $renderConfig->setRender(new \App\RenderDriver\MyRender());
        Render::getInstance()->attachServer(ServerManager::getInstance()->getSwooleServer());
    }
}

3、在控制器中新增 reload 方法重啟渲染引擎

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;
use EasySwoole\Template\Render;

class Index extends Controller
{
    public function index()
    {
        $this->response()->write(Render::getInstance()->render('index.tpl', [
            'user' => 'easyswoole',
            'time' => time()
        ]));
    }

    public function reload()
    {
        Render::getInstance()->restartWorker();
        $this->response()->write('restart worker success!');
    }
}

運行結果:訪問 http://127.0.0.1:9501/ (示例請求地址) 即可看到運行結果: your template is index.tpl and data is {"user":"easyswoole","time":1613659221},然后訪問 http://127.0.0.1:9501/reload (示例請求地址) 即可重啟渲染引擎,看到運行結果 restart worker success!

使用示例(在 EasySwoole 中使用)

使用 Smarty 渲染

引入Smarty

composer require smarty/smarty

實現(xiàn)渲染引擎

新建 \App\RenderDriver\Smarty.php,內(nèi)容如下:

<?php

namespace App\RenderDriver;

use EasySwoole\Template\RenderInterface;

class Smarty implements RenderInterface
{
    private $smarty;

    function __construct()
    {
        $temp = sys_get_temp_dir();
        $this->smarty = new \Smarty();
        $this->smarty->setTemplateDir(EASYSWOOLE_ROOT . '/App/View/');
        $this->smarty->setCacheDir("{$temp}/smarty/cache/");
        $this->smarty->setCompileDir("{$temp}/smarty/compile/");
    }

    public function render(string $template, ?array $data = null, ?array $options = null): ?string
    {
        foreach ($data as $key => $item) {
            $this->smarty->assign($key, $item);
        }
        return $this->smarty->fetch($template, $cache_id = null, $compile_id = null, $parent = null, $display = false,
            $merge_tpl_vars = true, $no_output_filter = false);
    }

    public function onException(\Throwable $throwable, $arg): string
    {
        $msg = "{$throwable->getMessage()} at file:{$throwable->getFile()} line:{$throwable->getLine()}";
        trigger_error($msg);
        return $msg;
    }
}

舊版本 Template 組件(1.1.0 之前)實現(xiàn)渲染引擎接口的方法和最新穩(wěn)定版本有些許不同,詳細請看上文。Template 1.1.0 之前版本實現(xiàn)如下:

<?php
namespace App\RenderDriver;

use EasySwoole\Template\RenderInterface;

class Smarty implements RenderInterface
{
    private $smarty;

    function __construct()
    {
        $temp = sys_get_temp_dir();
        $this->smarty = new \Smarty();
        $this->smarty->setTemplateDir(EASYSWOOLE_ROOT . '/App/View/');
        $this->smarty->setCacheDir("{$temp}/smarty/cache/");
        $this->smarty->setCompileDir("{$temp}/smarty/compile/");
    }

    public function render(string $template, ?array $data = [], ?array $options = []): ?string
    {
        foreach ($data as $key => $item) {
            $this->smarty->assign($key, $item);
        }
        return $this->smarty->fetch($template, $cache_id = null, $compile_id = null, $parent = null, $display = false,
            $merge_tpl_vars = true, $no_output_filter = false);
    }

    public function afterRender(?string $result, string $template, array $data = [], array $options = [])
    {

    }

    public function onException(\Throwable $throwable, $arg): string
    {
        $msg = "{$throwable->getMessage()} at file:{$throwable->getFile()} line:{$throwable->getLine()}";
        trigger_error($msg);
        return $msg;
    }
}

在 EasySwoole 的 HTTP 服務中調(diào)用

首先在 EasySwoole 全局事件 EasySwooleEvent.phpmainServerCreate 事件中注冊渲染引擎服務,注冊示例代碼如下:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        // 獲取 Render 配置
        $renderConfig = \EasySwoole\Template\Render::getInstance()->getConfig();

        // [可選配置]
        /*
        $renderConfig->setTimeout(3); // 設置 超時時間,默認為 3s,不建議修改
        $renderConfig->setServerName('EasySwoole'); // 設置 渲染引擎驅動服務名稱,不建議修改
        $renderConfig->setWorkerNum(3); // 設置 渲染引擎服務工作進程數(shù),默認為 3,不建議修改
         */

        // 設置 渲染引擎模板驅動
        $renderConfig->setRender(new \App\RenderDriver\Smarty());

        // 設置 渲染引擎進程 Socket 存放目錄,默認為 getcwd()
        $renderConfig->setTempDir(EASYSWOOLE_TEMP_DIR);

        // 注冊進程到 EasySwoole 主服務
        \EasySwoole\Template\Render::getInstance()->attachServer(\EasySwoole\EasySwoole\ServerManager::getInstance()->getSwooleServer());
    }
}

在控制器層響應(使用示例代碼如下):

首先新建 App\View\custom.html,內(nèi)容如下:

{$name}

在控制器中進行調(diào)用:

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;

class Index extends Controller
{
    public function index()
    {
        $this->response()->write(\EasySwoole\Template\Render::getInstance()->render('custom.html', ['name' => 'Welcome To Use EasySwoole ^_^!']));
    }
}

運行結果:啟動服務,訪問 http://127.0.0.1:9501,即可看到運行結果:Welcome To Use EasySwoole ^_^!

支持常用的模板引擎

下面列舉一些常用的模板引擎包方便引入使用:

smarty/smarty

Smarty 是一個使用 PHP 寫出來的模板引擎,是目前業(yè)界最著名的 PHP 模板引擎之一。

引入方法

composer require smarty/smarty=~3.1

league/plates

使用原生 PHP 語法的非編譯型模板引擎,更低的學習成本和更高的自由度。

引入方法

composer require league/plates=3.*

duncan3dc/blade

Laravel 框架使用的模板引擎

引入方法

composer require duncan3dc/blade=^4.5

topthink/think-template

ThinkPHP 框架使用的模板引擎

引入方法

composer require topthink/think-template

如果用戶想要在 EasySwoole 框架中使用以上模板引擎,具體使用示例可以查看Template 使用示例 或者 Template 組件單元測試用例。上文中講述了使用 Smarty 模板引擎的使用示例,其他模板引擎的使用方法大致類似。

常見問題

注冊渲染引擎失敗,出現(xiàn) UnixSocket bind 失敗

  • 報錯結果類似如下:
PHP Fatal error:  Uncaught EasySwoole\Component\Process\Exception: EasySwoole\Template\RenderWorker bind /work/EasySwoole.Render.Worker.0.sock fail case Operation not permitted in /work/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php:32
  • 失敗原因:部分 vargrant 服務器或 Docker 服務器沒有權限創(chuàng)建 UnixSocket,導致注冊渲染引擎失敗。
  • 解決方案:注冊渲染引擎時,設置渲染引擎驅動進程 Socket 存放目錄為 '/Tmp'。示例代碼如下:
<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        // 獲取 Render 配置
        $renderConfig = \EasySwoole\Template\Render::getInstance()->getConfig();
        // 設置 渲染引擎模板驅動
        $renderConfig->setRender(new \App\RenderDriver\Smarty());

        ###  設置 渲染引擎進程 Socket 存放目錄為 '/Tmp'  ###
        $renderConfig->setTempDir('/Tmp');

        // 注冊進程到 EasySwoole 主服務
        \EasySwoole\Template\Render::getInstance()->attachServer(\EasySwoole\EasySwoole\ServerManager::getInstance()->getSwooleServer());
    }
}
主站蜘蛛池模板: 日韩中文字幕一区二区 | 久久久久久久久久国产 | 色综合色综合 | 视频一区 国产精品 | 欧美a级成人淫片免费看 | 91精品久久久久久久 | 91成人区| 日韩大尺度在线观看 | 国内自拍偷拍视频 | 欧美成人激情 | 精品国产欧美一区二区三区成人 | sese综合| 玖玖精品视频 | 美女福利视频网站 | 欧美日韩三级在线 | 天天插狠狠插 | 久久久久久久久国产 | 欧美一区二区三区在线观看 | 欧美成人综合在线 | 天堂av中文 | 国产一区二区三区免费 | 久久久精品一区二区 | www.国产 | av网站在线免费观看 | 亚洲永久免费视频 | 日韩中文在线 | 日本成人小视频 | 日韩精品一区二区三区在线观看 | 日本高清无卡码一区二区久久 | 欧美一区在线观看视频 | 日韩中文在线 | 求av网址| 亚洲久草 | 国产中文一区 | 美女天堂 | 看片天堂 | 国产在线精品一区二区 | 精品视频在线观看 | 亚洲久草 | 91精品国产高清久久久久久久久 | 久久人人爽人人爽人人片av高清 | 欧洲成人在线 | 久草综合网 | 久久久蜜桃一区二区人 | 久久精品网 | 婷婷综合激情 | 亚洲在线视频 | 欧美日韩黄| 男人久久天堂 | 国产亚洲精品久久久优势 | 中国91视频 | 97影院在线午夜 | 久久爱综合网 | 黄色一级电影 | 91伊人网 | 婷婷精品 | 婷婷在线免费视频 | 欧美久久久久 | 久久久国产精品入口麻豆 | 日韩在线精品 | 国产91久久久久 | 美国成人在线 | 午夜精品久久久久久久久久久久 | 中文在线一区二区 | 欧美日韩视频在线观看免费 | 亚洲视频中文字幕 | 国产精品福利在线 | 国产精品久久久久久久久久久久久久 | 一级看片 | 欧美aaaaa | 一区二区亚洲 | 欧美性生活视频 | 色综合久 | 午夜日韩 | 欧美日韩成人在线 | 久久久精品电影 | 蜜桃视频麻豆女神沈芯语免费观看 | 黄网站免费在线 | 91欧美| 日日搞夜夜操 | 蜜臀精品久久久久久蜜臀 | 91精品久久久久久久 | 91精品麻豆日日躁夜夜躁 | 欧美日韩亚洲国内综合网 | 国产一区在线视频 | 精品久久久久久国产 | 国产精品久久久久久久免费大片 | 亚洲网站在线免费观看 | 一区二区免费视频 | 日本妇乱大交xxxxx | 日韩精品成人 | 日韩美女av在线 | 久久综合激情 | 国产精品久久嫩一区二区 免费 | 国产成人精品免高潮在线观看 | 欧美视频一级 | 夜添久久精品亚洲国产精品 | 在线播放91 | 国产欧美日韩一区二区三区 | 国产精品国产精品国产专区不片 | jizz在线看片 | 成人免费观看视频 | 国产精品成人一区二区三区夜夜夜 | 日韩在线中文字幕 | 婷婷久久综合九色综合绿巨人 | 亚洲大片免费观看 | 亚洲高清在线视频 | 免费看的黄色网 | 亚洲精品一区中文字幕乱码 | 日韩视频在线观看中文字幕 | 国产成人精品免费视频大全最热 | 精品成人一区 | 日韩免费观看视频 | 伊人激情影院 | 久久国产精品99久久久久久老狼 | 亚洲精品视频网 | 国产激情精品 | 久久精品久久久久电影 | h片观看 | 欧美一级片在线 | 狠狠艹| 一区二区免费播放 | 国产欧美综合一区二区三区 | 日韩久久一区二区 | 精品一区二区av | 亚洲精品乱码久久久久久蜜桃 | 亚洲精品久久久久avwww潮水 | 中文字幕在线资源 | 国产精品亚洲视频 | 国产精品爱久久久久久久 | 久久av网 | a级毛片基地 | 99免费精品 | 国产老头老太作爱视频 | 伊人色综合久久久天天蜜桃 | 色综合一区 | 欧美猛交ⅹxxx乱大交视频 | 精品久久久一 | 夜夜视频 | 99视频网站 | 中文字幕一区二区三区不卡 | 久久亚洲一区二区三区四区 | 伊人无码高清 | 1204国产成人精品视频 | 国产精品不卡视频 | 国产天堂在线 | 久久精品网 | 久久精品91久久久久久再现 | 欧美精品久久久久久久久久丰满 | 亚洲欧美一区二区三区在线 | 日韩一二三四 | 狠狠艹| 日本一区二区不卡 | 男女国产网站 | 国产在线中文字幕 | 依人成人综合网 | 羞羞av在线| 国产一区二区在线视频 | 红桃av一区二区 | 午夜夜 | 日韩一区二区精品 | 中文字幕精品一区久久久久 | 天天操天天干天天爽 | 在线电影亚洲 | 精品视频在线观看 | 色接久久 | 91精品国产综合久久久亚洲 | 2020亚洲视频 | 中文字幕日本视频 | 亚洲第一视频网站 | 日韩欧美在线观看一区二区三区 | 日韩成人影院 | 日韩电影中文字幕 | 91在线观看视频 | 精品一区二区三区免费 | 久久网日本 | 国产日韩视频在线播放 | 欧美精品久久久久久久久老牛影院 | 日本一区二区三区四区 | 蜜桃视频一区 | 成人精品一区 | 成人久久18 | 免费一级毛片 | 伊人网站 | 午夜视频一区二区三区 | 毛片网站在线观看 | 亚洲九九九 | 精品久久ai | 精品日韩一区二区三区 | 欧美五月 | 久久久久国产精品一区二区三区 | 91av在线播放 | 日韩一区欧美 | 人人射av| 色噜噜一区二区 | 久久久精品网站 | 三级黄色片在线免费观看 | 欧美日韩久久精品 | 成人福利在线 | 99精品国产高清一区二区麻豆 | 视频一区二区三区在线观看 | 在线成人av | 精品一区二区三区免费毛片爱 | 日韩亚洲视频 | 成人午夜毛片 | 中文字幕av亚洲精品一部二部 | 毛片在线免费 | 精品久久久久久亚洲精品 | 国产精品日韩专区 | 久久久网 | 欧美乱码久久久久久蜜桃 | 国产高清一区二区 | 久久免费精品视频 | 精品一区二区在线观看 | 欧美视频一区二区 | www精品 | 国产欧美精品一区二区三区四区 | 精品久久中文字幕 | 中文字幕av亚洲精品一部二部 | 国产精品国色综合久久 | 国产激情性色视频在线观看 | 亚洲啊v在线 | 中国国产一级毛片 | 欧洲一区二区三区 | 91精品国产91久久久久久吃药 | 一级毛片观看 | 亚洲乱码在线 | 成年人在线观看 | 色站综合| 欧美日韩精品一区二区三区 | 国产伦精品一区二区三毛 | 久久久久中文字幕 | 欧美a级成人淫片免费看 | 国产在线欧美 | 亚洲电影一区二区 | 国产福利片在线 | 爱福利视频 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 亚洲精品一区二区网址 | 色免费视频| 亚洲一区视频在线 | 久久久艹 | 国产片久久 | 精品欧美一区二区在线观看 | 欧美日韩中文 | 国产精品视频一区二区三区四 | 欧美成人福利 | 久久99视频 | 久久成人综合 | 在线国产91| 欧美a级成人淫片免费看 | 精品视频在线观看一区二区三区 | 一区二区三区高清不卡 | 亚洲午夜免费视频 | 欧美日韩一区在线 | 国产一区二区精品在线观看 | 天天干天天爽 | 国产精品久久久久久久久久久久久久久久 | 欧美精品一区二区三区在线四季 | 人人做人人澡人人爽欧美 | 视频在线一区二区三区 | 国产亚洲精品美女久久久久久久久久 | 欧美福利一区二区三区 | 午夜激情视频免费 | 成人在线网址 | 91 在线观看 | 久久久精品免费观看 | 欧美日韩成人免费 | 天天爽夜夜爽夜夜爽精品视频 | www.夜夜骑| 自拍偷拍亚洲视频 | 亚洲一二三 | 国产欧美日韩综合精品一 | 日韩精品一区二区三区在线播放 | 一级毛片免费播放 | 成人一级 | 天堂在线中文 | 国产91精品在线 | 五月天婷婷丁香 | www日本高清视频 | 中文二区 | 美女视频一区 | 欲色av| 久久久久久国产精品mv | 亚洲精选一区二区 | 国产精品久久久久久亚洲调教 | 国产色| 特黄特色大片免费视频观看 | 精品国产鲁一鲁一区二区在线观看 | 精品国产999| 精品视频一区二区三区 | 日韩一区在线视频 | 性高湖久久久久久久久aaaaa | 国产精品福利在线观看 | 国产精品中文字幕在线 | 国产午夜精品久久久久久久 | 国产精品久久天天躁 | 亚洲三区在线观看 | 久久久久久久91 | 大黑人交xxx极品hd | 久久先锋| 国产精品二区一区二区aⅴ污介绍 | 精品91在线视频 | 四虎影院最新网址 | 日韩av免费看 | 日韩欧美在线视频 | sis色中色 | 欧美中文字幕在线观看 | 中文字幕在线永久在线视频 | 日本久久二区 | 久久免费精品视频 | 一区二区三区在线播放 | 亚洲成人免费 | 狠狠ri| 欧美一区免费 | 99爱视频| 欧美久久久久久久 | 国产成人精品免费视频大全 | 中文字幕在线观看第一页 | 在线国产一区二区 | 一区二区三区视频 | 国产精品久久久久久久岛一牛影视 | 日本久久精品 | 天天干女人网 | 9999国产精品 | av一区二区在线观看 | 欧美日韩一区二区电影 | 成人妇女免费播放久久久 | 国产一二在线 | 亚洲精品福利 | 荡女妇边被c边呻吟视频 | 久久不射电影网 | 最新av中文字幕 | 日韩视频在线观看一区 | 久久久久黄色 | 久久综合网址 | 91精品国产高清一区二区三区 | 免费成人一级片 | 欧美激情视频一区二区三区在线播放 | 日韩在线中文 | 久久综合亚洲 | 亚洲精品国精品久久99热 | 欧美精品亚洲 | 久草视频在线播放 | 黄色片在线 | 色爱区综合五月激情 | 日本福利网站 | 精品国产乱码久久久久久1区2区 | 欧美日一区二区 | 美女久久久久 | 免费国产一区二区 | 久久久精品网站 | 亚洲欧洲无码一区二区三区 | 91伊人| 欧美日韩国产中文 | 成人av免费观看 | 国产一区二区三区四区在线观看 | 国产一区二区三区免费观看 | 伊人久久艹 | av影音在线 | 久久久99国产精品免费 | 天天干人人 | 国产一区二区久久 | 国产a免费| 一级a性色生活片久久毛片波多野 | 成人在线视频免费 | 中文字幕一区二区三区乱码图片 | 色综合区| 国产精品久久久久久久岛一牛影视 | 国产精品11 | 精品国产一区二区三区久久影院 | 人人做人人澡人人爽欧美 | a在线免费| 一级视频在线免费观看 | 九色91视频| 青青草一区二区 | 毛片毛片毛片毛片毛片毛片 | 一区二区三区免费看 | 日日夜夜天天 | 国产亚洲欧美一区二区三区 | 精品99久久 | 99中文字幕 | 2019中文字幕视频 | 日韩一区在线观看视频 | 中文字幕一区二区在线观看 | 欧美久久一区二区 | 日韩中文字幕免费在线播放 | 久综合网 | 国产精品一区二区三区在线看 | 蜜桃视频精品 | 国产亚洲精品久久久久久久 | 婷婷精品 | 伊人婷婷| 成人一区二区三区久久精品嫩草 | 亚洲乱码在线 | 成人精品视频 | 色偷偷噜噜噜亚洲男人 | 欧美中文字幕在线 | 久久久免费视频播放 | 日日干天天操 | 午夜免费av| 精品影院| 国产精品美女视频免费观看软件 | 成人伊人 | 成人亚洲在线观看 | 国产精品久久久久国产a级 99精品欧美一区二区三区综合在线 | 亚洲激情久久 | 国产日韩视频在线播放 | 精品欧美黑人一区二区三区 | 国产日韩一区二区 | 国产99在线 | 亚洲 | 女人毛片a毛片久久人人 | 久久不射电影网 | 麻豆精品久久 | 亚洲精品久久一区二区三区 | 国产成人精品免费 | 亚洲一区欧美一区 | a级在线免费观看 | 精品久久久久久久久久久久久 | 亚洲成人av在线播放 | 91精品国产一区二区三区四区在线 | 欧美精品成人一区二区三区四区 | 亚洲国产精品一区二区久久 | 亚洲精品一区二区网址 | 81精品国产乱码久久久久久 | 亚洲欧美精品久久 | 国产成年免费视频 | 国产中文字幕在线 | 欧美视频二区 | 综合五月 | 奇米影| 精品久久久久久久久久久久久久 | 欧美精品久久久久久久久久丰满 | 欧美激情精品久久久久久免费 | 欧美一级裸体视频 | 中文字幕本久久精品一区 | 成人午夜精品 | 97在线观看| 日韩欧美在线观看一区二区三区 | 看片wwwwwwwwwww| 国产乱码精品一区二区三区五月婷 | 一区二区三区国产精品 | 成人久久久久久久久 | 日韩综合网 | 精品一区二区三区在线观看视频 | 日日干,天天干 | 日韩和的一区二区 | 老黄网站在线观看 | 国产精品国产精品国产专区不卡 | 国内精品亚洲 | 久久亚洲美女 | 久草电影网 | 欧州一区二区 | 中文字幕亚洲一区二区va在线 | 久久精品免费看 | 亚洲精品乱码久久久久久蜜桃 | 成人精品一区二区 | 亚洲成人免费 | 久久久久久黄 | 久色视频在线观看 | av免费网站在线观看 | www.亚洲成人 | 成人在线免费 | 狠狠艹av| 国产一区二区三区免费观看 | 国产精品免费观看 | 精品视频在线观看一区二区三区 | caoporn国产精品免费公开 | 人人插人人| 一区二区三区在线不卡 | 狠狠操精品视频 | 欧美a区| 亚洲一区中文字幕在线 | 中文字幕一区在线观看视频 | 亚洲精品乱码久久久久久9色 | 蜜桃精品久久久久久久免费影院 | 99精品不卡 | 在线精品国产一区二区三区 | 高清一区二区三区 | 成人av播放| 久热在线视频 | 欧美日韩在线视频一区二区 | 91在线观看 | 国产精品久久免费看 | 日韩国产欧美一区 | 99热国 | 国产高清在线精品一区二区三区 | 免费黄色在线视频网址 | 中国一级免费毛片 | 玖玖精品| www.一级电影 | 成人免费在线视频 | 性色在线| 久久99国产精品 | 日本二区在线观看 | 美女国产精品 | 欧美日韩高清在线一区 | 91免费在线看 | 久草福利在线视频 | 欧美一区二区三区四区不卡 | 野狼在线社区2017入口 | 欧美xxxx做受欧美 | av网站免费在线观看 | 一区二区日韩视频 | 在线视频中文字幕 | 亚洲麻豆 | 国产福利精品一区 | 亚洲视频综合 | 91在线视频 | 精品免费久久 | 欧美日韩啪啪 | 亚洲一区综合 | 欧美日韩久久久 | 亚洲无吗电影 | 尹人成人 | 欧美日韩在线观看视频 | www国产亚洲精品久久网站 | 婷婷国产成人精品视频 | 国产精品一区二区三区四区 | 久久久久久久久综合 | 亚洲欧美一区二区精品中文字幕 | 一级a性色生活片毛片 | 久久国产精品视频 | 亚洲视频一区在线 | 少妇久久久久 | 亚洲国产日韩a在线播放性色 | 一区二区精品视频 | 午夜老湿影院 | 亚州国产| 欧美成人影院在线 | 亚洲爽爽| 久久久久久91香蕉国产 | 欧美一级毛片日韩一级 | 国产视频1 | 亚洲毛片在线 | 性色视频免费观看 | jlzzjlzz国产精品久久 | 欧美精品91 | 美女视频一区 | 日韩二区三区 | 中文字幕一区在线观看视频 | 国产一区二区欧美 | 欧美成人精品一区二区三区在线看 | 欧美一区二区三区四区不卡 | 国产视频一二区 | 一区二区三区精品视频 | 黄色日批视频 | 亚洲精品电影在线观看 | 91网站在线播放 | 久久亚洲一区 | 毛片网站免费在线观看 | 日韩一级 | 欧美性猛交一区二区三区精品 | chengrenzaixian| 久久精品免费国产 | 欧美日韩中文字幕在线 | 日韩视频免费在线播放 | 日日操天天射 | 欧美日韩一区二区三区在线观看 | 91麻豆精品国产91久久久久久久久 | 成人a在线视频免费观看 | a一级黄 | 懂色av色香蕉一区二区蜜桃 | 精品在线| 特黄视频| 男女羞羞视频在线免费观看 | 中文字幕在线视频免费观看 | 国产中文字幕一区 | 性色av一区二区三区 | 毛片免费观看 | 一级片视频在线观看 | 国产欧美精品 | 亚洲国产高清在线 | 伊人春色成人 | 久久久久久精 | 日韩精品极品视频在线 | 91夜夜夜| 五月激情综合网 | 日韩欧美在线中文字幕 | 亚洲欧美综合 | 日韩精品免费在线观看 | 日韩一二 | 97久久久 | 日日爱视频 | 亚洲精品久久久久久一区二区 | 国产日韩欧美在线 | 国产精品久久久久一区二区三区 | 亚洲成人免费视频在线观看 | 三级黄色片在线观看 | 国产精品福利在线观看 | 黄在线看v| 国产视频精品自拍 | 播放一区| 成人精品二区 | 一级片免费视频 | 亚洲91| 国产午夜精品一区二区 | 国产精品久久综合 | 99精品九九 | 欧美高清视频一区二区三区 | 亚洲一区视频在线播放 | 99热在线精品播放 | 91精品国产欧美一区二区成人 | 亚洲精品视频在线 | 超碰操| 麻豆精品一区二区 | 日韩中文字幕无码一区二区三区 | 真人女人一级毛片免费播放 | 在线观看中文字幕 | 国产九九精品视频 | 国产一区二区三区四区视频 | 国产亚洲精品久久久久动 | 丁香婷婷久久久综合精品国产 | 亚洲欧美日韩精品久久亚洲区 | 剑来高清在线观看 |