五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

模板引擎

渲染驅(qū)動(dòng)

EasySwoole 引入模板渲染驅(qū)動(dòng)的形式,把需要渲染的數(shù)據(jù),通過協(xié)程客戶端投遞到自定義的同步進(jìn)程中進(jìn)行渲染并返回結(jié)果。為何要如此處理,原因在于,市面上的一些模板引擎在 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 請(qǐng)求的數(shù)據(jù),被 B 請(qǐng)求給污染了。為了解決該問題,EasySwoole 引入模板渲染驅(qū)動(dòng)模式。

組件要求

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

安裝方法

composer require easyswoole/template

倉(cāng)庫(kù)地址

easyswoole/template

基礎(chǔ)實(shí)現(xiàn)原理講解

實(shí)現(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 之前版本) 實(shí)現(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 服務(wù)中調(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()); // 設(shè)置 渲染引擎驅(qū)動(dòng) Socket 存放目錄,默認(rèn)為 getcwd()
$renderConfig->setTimeout(3); // 設(shè)置 超時(shí)時(shí)間,默認(rèn)為 3s,不建議修改
$renderConfig->setServerName('EasySwoole'); // 設(shè)置 渲染引擎驅(qū)動(dòng)服務(wù)名稱,不建議修改
$renderConfig->setWorkerNum(3); // 設(shè)置 渲染引擎服務(wù)工作進(jìn)程數(shù),默認(rèn)為 3,不建議修改
 */

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

$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 服務(wù)中調(diào)用渲染引擎時(shí),實(shí)現(xiàn)渲染引擎接口的方法有些許不同,詳細(xì)請(qǐng)看上文實(shí)現(xiàn)渲染引擎。

重啟渲染引擎

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

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

那是因?yàn)槟0逡嬉呀?jīng)緩存了 A 所在進(jìn)程的文件,導(dǎo)致后面的請(qǐng)求如果也分配到了 A 的進(jìn)程,就會(huì)獲取到緩存的值

解決方案如下:

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

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

重啟渲染引擎使用示例

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

1、實(shí)現(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 之前)實(shí)現(xiàn)自定義渲染引擎接口的方法和最新穩(wěn)定版本有些許不同,詳細(xì)請(qǐng)看上文。

2、注冊(cè)渲染引擎服務(wù)

<?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()); // 設(shè)置 渲染引擎驅(qū)動(dòng) Socket 存放目錄,默認(rèn)為 getcwd()
        $renderConfig->setTimeout(3); // 設(shè)置 超時(shí)時(shí)間,默認(rèn)為 3s,不建議修改
        $renderConfig->setServerName('EasySwoole'); // 設(shè)置 渲染引擎驅(qū)動(dòng)服務(wù)名稱,不建議修改
        $renderConfig->setWorkerNum(3); // 設(shè)置 渲染引擎服務(wù)工作進(jìn)程數(shù),默認(rèn)為 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!');
    }
}

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

使用示例(在 EasySwoole 中使用)

使用 Smarty 渲染

引入Smarty

composer require smarty/smarty

實(shí)現(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 之前)實(shí)現(xiàn)渲染引擎接口的方法和最新穩(wěn)定版本有些許不同,詳細(xì)請(qǐng)看上文。Template 1.1.0 之前版本實(shí)現(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 服務(wù)中調(diào)用

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

<?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); // 設(shè)置 超時(shí)時(shí)間,默認(rèn)為 3s,不建議修改
        $renderConfig->setServerName('EasySwoole'); // 設(shè)置 渲染引擎驅(qū)動(dòng)服務(wù)名稱,不建議修改
        $renderConfig->setWorkerNum(3); // 設(shè)置 渲染引擎服務(wù)工作進(jìn)程數(shù),默認(rèn)為 3,不建議修改
         */

        // 設(shè)置 渲染引擎模板驅(qū)動(dòng)
        $renderConfig->setRender(new \App\RenderDriver\Smarty());

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

        // 注冊(cè)進(jìn)程到 EasySwoole 主服務(wù)
        \EasySwoole\Template\Render::getInstance()->attachServer(\EasySwoole\EasySwoole\ServerManager::getInstance()->getSwooleServer());
    }
}

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

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

{$name}

在控制器中進(jìn)行調(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 ^_^!']));
    }
}

運(yùn)行結(jié)果:?jiǎn)?dòng)服務(wù),訪問 http://127.0.0.1:9501,即可看到運(yùn)行結(jié)果:Welcome To Use EasySwoole ^_^!

支持常用的模板引擎

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

smarty/smarty

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

引入方法

composer require smarty/smarty=~3.1

league/plates

使用原生 PHP 語(yǔ)法的非編譯型模板引擎,更低的學(xué)習(xí)成本和更高的自由度。

引入方法

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 組件單元測(cè)試用例。上文中講述了使用 Smarty 模板引擎的使用示例,其他模板引擎的使用方法大致類似。

常見問題

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

  • 報(bào)錯(cuò)結(jié)果類似如下:
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 服務(wù)器或 Docker 服務(wù)器沒有權(quán)限創(chuàng)建 UnixSocket,導(dǎo)致注冊(cè)渲染引擎失敗。
  • 解決方案:注冊(cè)渲染引擎時(shí),設(shè)置渲染引擎驅(qū)動(dòng)進(jìn)程 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();
        // 設(shè)置 渲染引擎模板驅(qū)動(dòng)
        $renderConfig->setRender(new \App\RenderDriver\Smarty());

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

        // 注冊(cè)進(jìn)程到 EasySwoole 主服務(wù)
        \EasySwoole\Template\Render::getInstance()->attachServer(\EasySwoole\EasySwoole\ServerManager::getInstance()->getSwooleServer());
    }
}
主站蜘蛛池模板: 欧美一区二区国产 | 亚洲欧美一区二区三区国产精品 | 亚洲免费成人在线 | 日韩欧美的一区二区 | 新婚少妇紧窄白嫩av | 亚洲欧美日韩成人高清在线一区 | 亚洲第一se情网站 | 国产高清视频一区 | 国产精品人妻一区夜夜爱 | 美女野外找人搭讪啪啪 | 蜜桃精品久久久久久久免费影院 | 国产精品18久久久久久首页狼 | 国产女人被狂躁到高潮小说 | 国产久久精品 | 国产精品入口麻豆原神 | 91最新在线视频 | 狠狠色噜噜狠狠狠888米奇视频 | 青青视频免费在线观看 | 欧美三级午夜理伦三级老人 | 久久熟妇人妻午夜寂寞影院 | 日韩精品视频一区二区三区 | 91ts人妖另类精品系列 | 中文字幕亚洲一区二区va在线 | 日本免费一区视频 | yzzavcom免费观看视频 | 午夜福利三级理论电影 | 天天干夜夜看 | 日韩在线看片 | 肉丝美脚视频一区二区 | 激情在线视频 | 人人妻人人妻人人人人妻 | 日韩精品免费一区二区夜夜嗨 | 国产探花在线精品一区二区 | 久久精品人人做人人妻人人玩 | 欧美精品一卡二卡 | 国产精品一区二区羞羞答答 | 日本毛片网站 | 欧美 国产 亚洲 卡通 综合 | 一级在线免费视频 | 伊人夜夜躁av伊人久久 | 三级视频在线 | av高清在线观看 | 久久免费黄色网址 | 九九热精品视频在线观看 | 精产国品一区二区三区四区 | 最新日韩在线视频 | 视频在线a | 日本中文在线播放 | 国产在线永久视频 | 免费萌白酱国产一区二区三区 | 天天搞天天| 免费看黄色三级三级 | 日日骚一区 | 一本色道无码道在线观看 | 欧美精品www | 丁香婷婷综合激情 | 扒开女人内裤猛进猛出免费视频 | 少妇又紧又色又爽又黄又刺激 | 东北农村老女人乱淫视频毛片 | 国内揄拍国内精品人妻 | 亚洲第一激情 | 久久99国产综合精品 | jizz教师| 日本鲜嫩鲜嫩bbw | 国产毛片一区二区三区va在线 | 色综合天天综合网国产 | 国产女人高潮的av毛片 | 国产精品午夜无码av体验区 | 成熟人妻av无码专区 | 最新亚洲人成无码网站 | 怡红院成人av| 国内精品久久久久影院一蜜桃 | 日本19禁啪啪吃奶大尺度 | 免费的av网站| ts 人妖 另类 在线 | 欧美午夜精品久久久久免费视 | 精品国产一区二区三区蜜殿 | 极品老师腿张开粉嫩小泬 | 六月丁香综合 | wwwav在线com | 国产精品探花在线观看 | 深夜男女福利18免费软件 | 色妞综合| 国产黄色一级网站 | eeuss一区二区 | 成人网站在线进入爽爽爽 | 免费观看性生交大片3 | 亚洲午夜久久久久久久久红桃 | 91大神网址 | 国产精品入口麻豆九色 | 国产精品久久久天天影视 | а√天堂资源国产精品 | 美女男女激情晚上看 | 桃色综合网 | 成人做爰www看视频软件 | 国产三级网址 | 激烈的性高湖波多野结衣 | 免看一级片 | 国产综合精品一区二区三区 | 亚洲人成无码网站18禁10 | 国产精品久久久久一区二区三区 | 日韩精品视 | 亚洲视频在线一区 | 波多野结衣99 | 91人人爽人人爽人人精88v | 乱子伦视频在线看 | 精品黑人一区二区三区久久 | 色噜噜国产精品视频一区二区 | 黄色1级片| 亚洲国产精品久久久久制服 | 92看片淫黄大片看国产片图片 | 丝袜美腿亚洲一区二区 | 日韩一级影视 | 午夜影院色 | 无遮挡aaaaa大片免费看 | 国产视频一区二区不卡 | 北条麻妃一区二区三区四区五区 | 一边吃奶一边做爰爽到爆视频 | 国产精品无码v在线观看 | 免费av导航 | 国产在线观看黄 | 亚洲国产精品一区二区久久 | 欧美视频在线一区 | 能看的av| 折磨小男生性器羞耻的故事 | 在线看片人成视频免费无遮挡 | 少妇无内裤下蹲露大唇92 | 国产成人在线一区二区 | 综合三区后入内射国产馆 | 黑人巨大精品欧美一区二区免费 | 风流老熟女一区二区三区 | 99久久婷婷国产精品综合 | 久久狠狠一本精品综合网 | 在线精品国产一区二区三区 | 国产91在线视频 | 国产色综合久久无码有码 | 午夜日本永久乱码免费播放片 | 永久免费看mv网站入口亚洲 | 少妇伦子伦精品无码styles | 国产一级一级va | 欧美综合一区 | 日韩国产人妻一区二区三区 | 日本一级黄 | 精品二区在线观看 | 欧美黑人狂躁日本寡妇 | 丁香一区二区 | 色诱av手机版 | 国产盗摄精品一区二区酒店 | 91国产在线免费观看 | 亚洲精品一区在线 | 在线播放无码后入内射少妇 | 四虎黄色片 | 九九九国产 | 亚洲精品久久久久久 | 成人三级晚上看 | 国产乱妇4p交换乱免费视频 | 伊人情人综合网 | 国产精品99久久精品爆乳 | 天天天天天天操 | 国产天堂一区 | 国产精品h片在线播放 | 天天爱夜夜爽 | 女警高潮潮一夜一区二区三区毛片 | 国产精品久久久一区麻豆最新章节 | 天天射天天干天天操 | 欧美情侣性视频 | 亚洲成av人片在线观看 | 99精品欧美一区二区三区小说 | 吃奶呻吟打开双腿做受动态图 | 九九热精品视频在线观看 | 国产人免费人成免费视频 | 亚洲www在线 | 天天摸天天摸 | 天天爽网站 | 黄色毛片在线观看 | 精品无码三级在线观看视频 | 九九九热精品免费视频观看网站 | h部分肌肉警猛淫文 | 色噜噜狠狠狠综合曰曰曰 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲男女一区二区三区 | www.五月天com | 大黄专集在线观看 | 岛国av免费观看 | 亚洲视频免费在线观看 | 男人都懂的网址 | 日日干夜夜撸 | 爱情岛论坛亚洲首页入口章节 | 176精品免费 | 男人的天堂无码动漫av | xvideos.蜜桃一区二区 | 丰满肉嫩西川结衣av | 麻豆出品必属精品 | 国产区免费| 韩国三级中文字幕hd久久精品 | 秋霞在线播放视频 | 日韩中文人妻无码不卡 | 亚洲免费色 | 中文字幕国产在线观看 | 青草一区二区 | 日韩欧美在线观看一区 | 欧美一卡二卡在线 | 五月天婷婷爱 | 亚洲欧美视频在线播放 | 欧美三级理论片 | 久草成人网 | 国产美女视频国产视视频 | 高潮毛片无遮挡 | 亚洲国产精品福利片在线观看 | 欧美大片无中文字幕 | 色a在线观看 | 亚洲欧洲成人av每日更新 | 成人爽站w47pw | 91欧美一区二区三区 | 国产毛片精品国产一区二区三区 | 国产亚洲成av人片在线观看 | 在线免费观看麻豆 | 懂色av影视一区二区三区 | 国产aaa精品| 天天色综合6 | 日韩av手机在线观看 | 国产视频在线播放 | 国产精品视频99 | 色播综合网 | 久久久国产一区二区三区四区 | 丝袜福利视频 | 久久久夜夜夜 | 朝鲜一级黄色片 | 亚洲精品久久久久国产 | 成人一级影片 | 久草热播 | 成人性生交大片免费4 | 91精品福利少妇午夜100集 | 欧美色婷婷 | 女人大荫蒂毛茸茸视频 | 欧美成人午夜激情 | 能免费看黄色的网站 | 亚洲性影院 | 天天综合在线观看 | 狼人综合网 | 精品深夜av无码一区二区老年 | 欧美日韩观看 | 91中文在线观看 | 天堂网av手机版 | 97超碰人人 | 欧美精品免费看 | 你懂的视频在线播放 | 国产欧美日韩视频 | 中文字字幕在线 | 久久亚洲伊人 | 午夜av在线免费观看 | 国产成人精品三级麻豆 | 91网站在线看 | 缅甸午夜性猛交xxxx | 日韩五月| 国产成+人欧美+综合在线观看 | 日日操天天射 | 免费精品99久久国产综合精品应用 | 五月婷婷丁香在线 | 亚洲一级在线观看 | 国产成人午夜片在线观看高清观看 | 免费网站观看www在线观看 | 老司机福利av| 一本之道高清码狼人 | 在线观看老湿视频福利 | 91丨九色丨海角社区 | 国产国产小嫩模无套内谢 | 97久草| 日韩少妇高潮抽搐 | 国产精品裸体一区二区三区 | 爱爱网站免费 | 少妇高潮叫床对白xxxxx | av免费观看久久 | 法国人性生活xxxx | 午夜国产一区二区三区四区 | 午夜大片男女免费观看爽爽爽尤物 | 亚洲精品一区二区三区98年 | av国产片 | 国产av天堂无码一区二区三区 | 内射中出无码护士在线 | 色哟哟av| 欧美成人va | 国产欧美日韩亚洲 | 五月婷婷深爱 | 日韩a片无码毛片免费看 | 国产性av| 午夜在线精品 | 成人在线毛片 | 凹凸日日摸日日碰夜夜爽孕妇 | 永久久久久久久 | 久久久久在线观看 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | www..com18午夜观看| 国产成人综合美国十次 | 久草福利资源在线观看 | 小视频在线观看 | 超碰97av| 日韩一区二区三区免费视频 | 亚洲 视频 一区 | 国产人与禽zoz0性伦多活几年 | 激情综合色五月丁香六月亚洲 | 国产精品无码制服丝袜 | 五月天一区二区三区 | 国产99久久久国产精品潘金 | 国产精品久久久久久久久免费桃花 | 外国av在线 | 亚洲视频六区 | 久久国产精品久久久久久 | 婷婷综合基地俺也来 | 免费观看又色又爽又黄的传媒 | 朝鲜大乳女奶水奶水吃奶视频在线 | 中文在线一区 | 天堂av一区二区三区 | 欧美性猛交xxxxx水多 | 日韩手机看片 | 在线观看国精产品二区1819 | 色综合激情 | 日韩黄色在线播放 | 黑人超碰 | a级毛片在线免费看 | 乱短篇艳辣500篇h文最新章节 | 极品美女一区二区三区 | 亚洲成av人片一区二区 | 日日夜夜天天 | 欧美视频一区二区三区在线观看 | 瑟瑟在线视频 | 一本大道东京热无码视频 | 国产免费a视频 | 国产成人精品一区二区三区视频 | 欧美极品少妇xxxxⅹ猛交 | 亚洲欧美日韩一级 | 久久精品一区二区三区四区 | 尤物精品| 91亚洲精华 | 亚洲国产精品国自产拍av秋霞 | 国产欧美日韩中文字幕 | 色肉色伦交av色肉色伦 | 日韩精品久久久久久久 | 超乳hitomi在线播放痴汉 | 欧美日韩中文字幕在线视频 | 国产一级美女视频 | 色噜噜狠狠一区二区三区果冻av | 24小时日本在线www免费的 | 国产97色在线 | 免费 | 久久亚洲一区二区三区四区 | 377p粉嫩日本欧洲色噜噜 | www内射国产在线观看 | 中文字幕在线视频免费视频 | 日韩成人高清视频在线观看 | 久久精品中文字幕无码绿巨人 | 久章草在线观看 | 成品人视频ww入口 | 高h全肉老汉嫩草文 | 亚洲欧美综合精品久久成人网无毒不卡 | 国产精品18久久久久久vr | 午夜黄色在线观看 | 蜜臀av免费一区二区三区 | 无遮挡呻吟娇喘视频免费播放 | 日韩精品视频免费看 | 欧美激情视频一区二区三区在线播放 | 色欲av亚洲一区无码少妇 | 在线91av| 亚洲拍拍| 蜜臀av夜夜澡人人爽人人 | 哪里有毛片看 | 国产又大又硬又爽免费视频试 | 国产免费av在线 | 久草视| 亚洲成a人片在线观看天堂无码 | 亚洲精品日韩丝袜精品 | 亚洲成在人线在线播放 | 人妻av综合天堂一区 | 日本伦理一区二区三区 | 92精品国产成人观看免费 | 97一区二区国产好的精华液 | 另类亚洲激情 | 亚洲人成久久 | 成人性生活视频在线播放 | 亚洲国产高清在线观看视频 | 韩国中文三级hd字幕 | 两性视频久久 | 国产精品国产三级国产密月 | 欧美一区二区三区日韩 | 蜜桃av一区二区三区 | 欧美精品欧美极品欧美激情 | 日韩精品一区二区三区中文无码 | 久草免费在线色站 | 性史性dvd影片农村毛片 | 国产女主播在线播放 | 日日夜夜av | 欧美日韩在线一区二区 | 岳双腿间已经湿成一片视频 | 超碰人人在线观看 | 亚洲人成图片小说网站 | 色噜噜狠狠色综合免费视频 | 老熟妇高潮一区二区三区 | 一二三区在线视频 | 欧美高清在线一区 | 男女裸体无遮挡做爰 | 99热官网| 久久国产精 | www.久久av| 国产69精品久久99的软件特点 | 五月天久久久久久九一站片 | 国产成人av一区二区三区不卡 | 国产熟妇与子伦hd | 又粗又大内射免费视频小说 | 色.com| 午夜精品久久久久久久久久久久 | 在线免费观看黄视频 | 国产精品午夜爆乳美女视频 | 香蕉影院在线观看 | 日本边舌吻边做爽的视频 | 日韩亚洲国产欧美 | 天天爽天天爱 | 日韩在线aⅴ免费视频 | 国产一二三四在线视频 | 中文欧美日韩 | 国产亚洲精品成人av在线 | a级在线观看视频 | 噜噜噜亚洲色成人网站 | 又爽又大久久久级淫片毛片 | 六月丁香婷婷网 | 麻豆免费av | 亚洲毛片网 | 91精品国产爱久久丝袜脚 | 欧洲精品在线观看 | 亚洲一区二区三区四区五区午夜 | 国产午夜av | 狠狠噜天天噜日日噜 | 成人在线免费网址 | 国产三级精品一区二区三区视频 | 精品国产_亚洲人成在线 | 欧美jizz19性欧美 | 中文字幕乱码在线 | 蜜桃av蜜臀av色欲av麻 | 久久精品123| 豆国产96在线 | 亚洲 | 日本精品久久久久中文字幕 | 亚洲成a人片在线观看日本 国产精品无码成人午夜电影 | av在线免费播放网址 | 中文字幕一区二区在线播放 | 精品无码午夜福利理论片 | 亚洲va久久久噜噜噜久久狠狠 | 亚洲欧美综合精品成人导航 | 亚洲丝袜中文字幕 | 男人激烈吮乳吃奶视频片 | 成人欧美一区二区三区白人 | 精品国产一二 | 中文字幕乱视频 | www视频在线观看 | 国产高清精品在线 | 亚洲综合色区中文字幕 | 日韩av片在线 | 在线视频h | 无码国产精品一区二区免费16 | 日本爽快片100色毛片视频 | 国产亚洲欧美日韩精品一区二区三区 | 狠狠躁日日躁夜夜躁2022麻豆 | 久久婷五月天 | 亚州精品天堂中文字幕 | 国产 校园 另类 小说区 | 精品久久a | 青青久久av北条麻妃海外网 | 超碰成人在线观看 | 久久艹在线 | 国产精品久久久久久妇女6080 | 巨肉高h文从头做到尾肉短文 | 红杏av在线| 日韩成人免费 | 小视频免费在线观看 | 亚洲女人av久久天堂 | 福利免费在线观看 | 国产成人精品一区二区三区视频 | 一本大道久久a久久精二百 一本大道久久a久久精品综合1 | 麻豆最新 | 日韩精品中文字幕久久臀 | 国产二区视频在线观看 | 色哟哟网站在线观看 | 一级片久久久 | 午夜一区在线 | 日韩精品五区 | 美腿丝袜亚洲综合 | 狠狠躁天天躁无码中文字幕 | 香蕉精品在线 | 无码人妻一区二区三区精品视频 | 外国av网站| 99国产精品入口 | 美女一区二区视频 | 又黄又爽又色又刺激的视频 | 99国产精品久久久久久久成人热 | 精品成人网| 日韩一区视频在线 | 国产一区二区三区在线 | 97丨九色丨国产人妻熟女 | 亚洲视频精选 | 99视频热| 精品久久久久久久久久久久包黑料 | 日韩精品久久久肉伦网站 | 永井玛利亚 精品 国产 一区 | 红杏成人免费视频 | 国产老妇伦国产熟女老妇视频 | 国产高颜值大学生情侣酒店 | 免费的毛片视频 | 欧美日韩国产精品 | 丰满人妻一区二区三区无码av | 性――交――性――乱睡觉 | 91丨九色丨国产丨porny | 福利在线视频观看 | 日韩精品一区二区视频 | 精品一区二区在线视频 | 黄 色 软件 成 人在线 | 在线免费观看视频a | 成人免费大全 | 国产免费视频一区二区三区 | 色偷偷色噜噜狠狠成人免费视频 | 少妇精品无码一区二区免费视频 | 国产精品久久久久久亚洲影视内衣 | 亚洲国产精品久久久久秋霞 | 天天干天天透 | 日韩一卡二卡 | 人妻少妇精品无码专区app | 色资源av | 人妻少妇精品中文字幕av蜜桃 | 人妻体内射精一区二区三区 | 日本黄色激情视频 | 狠狠色依依成人婷婷九月 | 亚洲综合在线五月 | 国产精品性视频一区二区 | 一本到不卡 | 亚洲精品成人a在线观看 | 日韩成人免费观看 | 巨乳美女在线 | 91精品国自产在线偷拍蜜桃 | 国产又白又嫩又爽又黄 | 免费网站日本a级淫片免费看 | 亚洲三级视频 | 成年人免费在线观看视频网站 | 久久视频在线观看精品 | 九色丨porny丨喷水 | 性囗交免费视频观看 | 182tv国产免费观看软件 | 丁香五月亚洲综合在线 | 高柳家动漫在线观看 | 国精品无码人妻一区二区三区 | 91精品国产综合久久久久久 | 久久久嫩草 | 日本高清xxxx | 大江大河第三部50集在线观看旭豪 | 日本特级黄色 | 国产精品免费麻豆入口 | 7mav视频| 国产亚洲精品久久久久久 | 成人av免费在线看 | 香蕉福利视频 | 少妇做爰免费视看片 | 91色蝌蚪| 国内精品久久久久久久影视蜜臀 | 久草热在线视频 | 福利一区二区在线观看 | 中文字幕一区二区三区精彩视频 | 超碰国产天天做天天爽 | 欧美丰满熟妇bbbbbb百度 | 欧美美女一区二区 | 久久亚洲色www成人 av免费网站在线观看 | 91精产国品一二三产区区别网站 | 国产嘿咻| 欧美1区2区3区视频 欧美3p激情一区二区三区猛视频 | 中文字幕第2页不卡 | 婷婷射图 | 午夜不卡av | 久久久午夜精品福利内容 | 色综合av在线| a级毛片黄免费观看 m | 中文字幕 欧美日韩 | 伊人9999| 亚洲精品欧美综合四区 | 99re6在线视频精品免费 | 播播成人网 | 在线播放毛片 | 精品66| 日韩一级片一区二区三区 | 色欲av永久无码精品无码蜜桃 | 黄视频在线免费 | 久久精品免费观看 | 亚洲午夜精品久久久久久久久久久久 | 久久精品视频一区二区三区 | 永久天堂网av手机版 | 91av看片| 国产精品色在线网站 | 色视频网站免费看 | 日韩视频福利 | 欧美激情精品久久久久久免费 | 精品久久香蕉国产线看观看亚洲 | 337p粉嫩大胆噜噜噜 | 一级a爰片久久毛片 | 日日夜夜婷婷 | 91 高清 在线 制服 偷拍 | 日本欧美高清视频 | 亚洲午夜无码久久 | 久久久123| 色插综合 | 国产91丝袜在线播放九色 | 日本成a人片在线播放 | 欧洲色av| 亚洲欧美日韩国产综合 | 在线日本中文字幕 | 手机在线免费av | 久草剧场 | 老司机精品视频一区二区三区 | 丰满岳乱妇一区二区三区 | 国产伦精品一区二区三区千人斩 | 国产三级高清一区二区 | 女裸全身无奶罩内裤内衣内裤 | 午夜激情av |