五月天激情丁香,国产精品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());
    }
}
主站蜘蛛池模板: 窝窝午夜影院 | 网站在线看 | 樱桃国产成人精品视频 | aaa大片十八岁禁止 aa爱做片免费 | 精品久久久久久 | 国产三级做爰在线播放 | 免费a级网站 | 有码在线视频 | 香蕉视频在线免费播放 | 久一视频在线观看 | а√天堂8资源在线官网 | 成人av无码一区二区三区 | 久久狠狠一本精品综合网 | 美女扒开奶罩露出奶头视频网站 | 婷婷.com| 极品老师腿张开粉嫩小泬 | 无码中文字幕波多野结衣 | 日本a级老少配 | 中文字幕在线成人 | 免费看美女隐私网站 | 亚洲天码中字一区 | 少妇人妻精品一区二区 | caoprom在线| 深夜福利免费在线观看 | 欧美老妇bbwhd | 极品粉嫩鲍鱼视频在线观看 | 自拍 高清 日韩 欧美 另类 | 91最新国产 | 中文字幕亚洲高清 | 婷婷色网 | 精品国产百合女同互慰 | 激情六月丁香 | 一级黄色免费 | 一本色综合亚洲精品 | 欧美日韩在线综合 | 国产后入又长又硬 | 太粗太长太硬高潮了av | 爱爱免费视频 | 天堂av中文网 | 亚洲欧美日韩国产精品一区午夜 | 久久人人爽人人爽人人片av免费 | 韩国主播福利一区二区三区 | 奇米影视亚洲 | 快好爽射给我视频 | 又紧又大又爽精品一区二区 | 国产男女做爰猛烈床吻戏网站 | 免费观看a级片 | 国产精品日日躁夜夜躁欧美 | 中文字幕乱码亚洲精品一区 | 乌克兰性生交视频 | 国产精品久久久久久久影院 | 亚洲无限观看 | 丰满少妇人妻久久久久久 | 在线观看黄av | 狠狠躁夜夜躁人人爽超碰91 | 国产对白视频 | 欧美超大胆裸体xx视频 | 97超级碰碰碰碰久久久久 | 亚洲国产精品无码久久一区二区 | 91看片淫黄大片91桃色 | 激情另类视频 | 日本视频网址 | 亚洲暴爽av天天爽日日碰 | 伊人网大香 | 精品视频一区二区三区在线观看 | 中日韩黄色片 | 国产性猛交××××乱七区 | 天天舔天天舔 | 人人草人人爱 | 国产做爰视频免费播放 | 欧美一区二区三区免费 | 色妞色综合久久夜夜 | 久草在线观看资源 | 丰满人妻一区二区三区视频53 | 91欧美在线视频 | 91精品国产综合久久香蕉922 | 麻豆av一区 | 欧美日韩在线免费看 | 久久网中文字幕日韩精品专区四季 | 在线国产福利 | 激情网五月天 | 国产精品第9页 | 国产成人a亚洲精品 | 无码人妻久久一区二区三区 | wwwcom毛片| 欧美色图一区二区 | 亚洲日韩av一区二区三区四区 | 久久久久久九九九九九 | 成人综合一区 | 动漫羞免费网站中文字幕 | 伊久久| 91嫩草精品| 欧美伦理一区 | av在线播放国产 | 六月激情综合 | 久久久亚洲 | 久久精品国产丝袜人妻 | 新版天堂资源中文8在线 | 美女网站黄频 | 538国产精品视频一区二区 | 国产精品96久久久久久吹潮 | 欧美调教视频 | 国产日韩精品一区二区三区在线 | 精品少妇人妻av免费久久久 | 成人h在线观看 | 天天操天天操天天干 | 全黄h全肉短篇禁乱最新章节 | 中文字幕第一页在线vr | 天堂中文最新版在线中文 | 欧日韩在线 | jizz日本在线| 欧洲国产伦久久久久久久 | 99热这里只有精品3 99热这里只有精品4 | 精品久久久久久久久久久aⅴ | 97在线播放免费观看 | 美女诱惑av| 成人依依网 | 国产99对白在线播放 | 国产精品成人网站 | 无遮挡19禁啪啪成人黄软件 | 最近免费中文字幕大全免费版视频 | 国产精品自在在线午夜 | 青青国产精品 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 久在线精品视频线观看 | 91精品无人区麻豆乱码1区2区介绍 | 在线观看亚洲色图 | 国产又粗又长又黄的视频 | 免费毛片a | 国产女人爽到高潮免费视频 | 国产黄网在线观看 | 国产亚洲精品无码成人 | 国产91欧美 | www.久久久.com| 大地资源中文第三页 | 色乱码一区二区三在线看 | 久久精品日产第一区二区三区乱码 | 免费看少妇作爱视频 | 亚洲 欧美 影音先锋 | 亚洲日本视频在线观看 | 亚洲精品一区二区三区麻豆 | 久久精品国产亚洲 | 精品日韩欧美一区二区在线播放 | 欧美激情黑白配 | 91精品在线一区 | 国产精品一区二区久久 | 色五月色开心色婷婷色丁香 | 欧美在线不卡视频 | 韩国精品久久久 | 国内精品人妻无码久久久影院蜜桃 | 99精品免费 | 中文字幕一区二区三区精品 | 免费萌白酱国产一区二区三区 | 日韩免费精品 | 亚洲一区二区免费视频 | 国产无套护士在线观看 | 超碰97在线播放 | 日韩欧美中文在线观看 | 一区二区乱子伦在线播放 | 欧美韩日一区二区 | 人妻有码中文字幕 | 亚洲欧美经典 | 久久午夜片| 国产免费看插插插视频 | 麻豆视频污 | 欧美在线一二三四区 | 肉色超薄丝袜脚交一区二区 | 亚洲精品v天堂中文字幕 | 中文字幕av无码不卡 | 少妇又色又紧又爽又刺激视频 | 国产毛片久久久久久国产毛片 | 成人免费无码大片a毛片抽搐 | 久久亚洲影院 | 亚洲精品成人a8198a | av一级黄色片 | 超薄肉色丝袜一区二区 | 自拍一级片 | 午夜精品亚洲一区二区三区嫩草 | 国产精品久久久久久福利一牛影视 | 男女无遮挡xx00动态图120秒 | 国产私拍| 少妇人妻偷人精品一区二区 | 国产精品一区二区三区免费视频 | 盗摄精品av一区二区三区 | 99ri在线| 草草地址线路①屁屁影院成人 | aa视频在线 | 一区二区精品视频 | 亚洲高清无吗 | 日本a级免费| 国产中文字幕久久 | 欧美日韩亚洲视频 | 夜久久久| 亚洲中文字幕久久精品无码喷水 | 日本又白又嫩水又多毛片 | 狂猛欧美激情性xxxx大豆行情 | 日韩久久久精品 | 黄免费在线 | 青青在线免费观看 | 黄色成人av在线 | 精品一卡2卡三卡4卡免费网站 | 免费人成在线观看 | 青青青草视频在线 | 午夜成年视频 | 亚洲精品影院在线观看 | 日本黄色不卡视频 | 久久精品久久久久久久 | 中文字幕乱码人妻二区三区 | 欧美日韩二三区 | 国产地址一 | 日本女优在线看 | 极品美女扒开粉嫩小泬 | 色视频www在线播放国产人成 | 东北少妇不戴套对白第一次 | 日本涩涩视频 | 亚洲视频在线观看免费的欧美视频 | 欧美性大战xxxxx久久久 | 国产最新进精品视频 | 成年人在线免费看 | 亚洲女欲精品久久久久久久18 | 女人十八毛片嫩草av | www.香蕉视频在线观看 | 免费人成网站 | 久久国产精品亚洲 | 日韩激情在线视频 | 四虎影视www在线播放 | 大学生一级片 | 91丝袜在线观看 | 狠狠色丁香婷婷综合尤物 | 性欧美高清come | 日本太爽了受不了xxx | 国产精品久久久久久久av | 久久激情视频 | 老妇做爰xxx视频一区二区三区 | 丁香花免费高清完整在线播放 | 国产老头和老头xxxxx免费 | 欧美一二三级 | 成av人片在线观看www | 丰满爆乳一区二区三区 | 黄色三级av| 香蕉视频色 | 日韩精品三区 | 99国产精品99久久久久久娜娜 | 极品尤物一区二区 | 范冰冰一级做a爰片久久毛片 | 国产免费av网 | 国产免费一区二区三区四在线播放 | 天堂69堂在线精品视频软件 | 99视频在线观看视频 | 天堂久久天堂av色综合 | 成人性生交片无码免费看 | 国内偷拍第一页 | av av片在线看 | 久久亚洲精品小早川怜子 | a天堂最新地址 | 99国产精品久久不卡毛片 | 天天色综网 | 国产精品国产三级国产专区51 | 国内自在二三区 | 日本xxx大片免费观看 | 亚洲精品一区二区三区中文字幕 | 久久精品视频8 | 2019天天干夜夜操 | 欧美激情在线免费 | 久操视频在线播放 | 大陆日韩欧美 | 欧美人与zoxxxx视频 | www豆豆成人网com | 性囗交免费视频观看 | 青青草无码精品伊人久久 | 成人免费视频一区二区三区 | 艳妇臀荡乳欲伦交换h在线观看 | 少妇激情视频一二三区 | 国产伦理精品一区二区三区观看体验 | 极品少妇hdxx天美hdxx | 女人被狂躁c到高潮喷水一区二区 | 亚洲国产另类久久久精品性 | 国产 日韩 欧美 成人 | 精品视频网站 | 亚洲2022国产成人精品无码区 | 一级国产20岁美女毛片 | 亚洲欧美日韩成人高清在线一区 | 亚洲黄色在线观看视频 | 亚洲色播爱爱爱爱爱爱爱 | 色avav色avav爱av亚洲 | 大桥未久在线视频 | 中文字幕精品av一区二区五区 | 一级一片免费看 | 精品丝袜人妻久久久久久 | 欧美一级xxx | 少妇公车张开腿迎合巨大视频 | 国产小视频免费观看 | 538任你躁在线精品免费 | 91丨porny丨国产丝袜福利 | 日韩成人福利 | 天堂av中文字幕 | 亚洲一区尤物 | 暖暖日本在线观看 | 午夜日韩精品 | 久久久国产亚洲精品 | 久久久av亚洲男天堂 | 一级做a视频 | 蜜臀av一区 | 欧美性猛交xxxx免费视频软件 | 欧美亚洲国产精品 | 狠狠干成人 | 国产无遮挡又黄又大又爽 | 波多野结衣操 | 一色桃子656中文字幕 | 久久久网址 | 亚洲精品一卡二卡 | 久久久久国产精品熟女影院 | 在线免费看av网站 | 亚洲熟妇无码av另类vr影视 | 超碰九七在线 | 亚洲香蕉| 少妇高潮太爽了在线观看 | 强行挺进皇后紧窄湿润小说 | 操人在线观看 | 国产黄色片子 | 国产日韩一级片 | 国产精品毛片久久久久久久 | 日本精品久久久久中文字幕 | 成年人免费在线观看 | 久久99精品久久久久久久久久久久 | 吃奶揉捏奶头高潮视频在线观看 | 国产做爰xxx18在线观看网站 | 色婷婷综合久久久中文字幕 | 国产无遮挡一区二区三区毛片日本 | 超碰人人国产 | 中国毛片在线观看 | 久久久视频在线 | 日日摸夜夜骑 | 99re热在线视频 | 日韩不卡av在线 | 国产亚洲日本精品无码 | 四虎影视成人永久免费观看视频 | www日本久久| 日本成人在线免费 | 国产精品伦一区二区在线 | 在厨房拨开内裤进入在线视频 | 亚洲中文字幕不卡无码 | 日韩黄页在线观看 | 在线观看午夜 | 日本精品免费视频 | 中出人妻中文字幕无码 | 91大神在线看 | 一区二区国产精品 | 成年人网站免费视频 | 中文字幕视频在线 | 天天综合网天天综合狠狠躁 | 翘臀后进少妇大白嫩屁股视频 | 国产一区日韩二区欧美三区 | 香蕉视频在线免费看 | 中文成人无码精品久久久 | 99久久精品国产片果冻的功能特点 | 亚洲国产成人精品综合av | 亚洲 欧美变态 另类 综合 | 国产911在线观看 | 欧美xxxxx精品| 国产激情在线看 | 成人免费观看cn | 欧美日本一本 | 91精品国自产在线观看 | 亚洲视频网站在线观看 | 亚洲一级影院 | 精品无人乱码一区二区三区的特点 | 超碰97观看| 全国男人的天堂网 | 少妇疯狂做受xxxx高潮台湾 | 5566亚洲精华国产精华精华液 | 日本在线免费观看视频 | 日韩综合在线观看 | 欧美黑人又粗又大久久久 | 无码av最新清无码专区吞精 | 中文字幕乱码亚洲精品一区 | 一二三四视频社区在线 | 日韩不卡在线视频 | 久久嫩草精品久久久精品才艺表演 | av不卡在线看 | 奇米影视一区二区 | 九九热中文字幕 | 国产精品福利片 | 毛片其地 | 国产亚洲精品精华液 | 中文字幕日韩人妻在线视频 | 香蕉传媒 | 午夜小网站| 欧美一区二区免费视频 | 国产第六页 | 国产农村老太xxxxhdxx | 久久综合网欧美色妞网 | 国产欧美专区 | juliaannxxxxx高清| 久久婷婷国产色一区二区三区 | 999精品嫩草久久久久久99 | 日韩av第一页在线播放 | 人与性动交aaaabbbb | 乌克兰少妇性做爰 | 老熟女毛茸茸浓毛 | 国产婷婷色综合av蜜臀av | 国产亚洲精品美女久久久 | 色亚洲天堂| 中文字幕福利视频 | 奇米777四色在线精品 | 麻豆精品国产传媒mv男同 | 中文字幕亚洲区 | 91好色先生| 久久一级片 | 国产噜噜噜噜久久久久久久久 | k8经典少妇在线观看 | 五月天精品视频在线观看 | 狠狠cao日日穞夜夜穞av | 特级无码毛片免费视频尤物 | 无码一区二区波多野结衣播放搜索 | 国产69久久精品成人看 | 免费的a级毛片 | 国产91网站在线观看 | 日本护士毛茸茸 | 狠狠躁夜夜躁人人爽视频 | av色在线| 久久99精品久久久久久牛牛影视 | 国产精品盗摄!偷窥盗摄 | 波多野结衣久久精品 | 欧美日韩国产在线观看 | 一区二区视频在线观看免费 | 欧美一区二区三区爱爱 | 亚洲国产日韩欧美一区二区三区 | 国产乱淫av片免费观看 | 国产美女免费看 | 国产欧美日韩一区二区三区 | 日韩激情第一页 | 国产精品久久久久久妇女6080 | 天天色婷婷 | 青青青国产免费线在 | www.黄色| 精品久久久久久国产 | 国产真实乱偷精品视频免 | 夜色毛片永久免费 | 亚洲综合图片网 | 中文字幕最新在线 | 伊人七七 | 亚洲欧美www | 丰满大乳伦理少妇 | 亚洲国产精品va在线看黑人动漫 | 国产自偷自拍视频 | 国产97色在线 | 亚洲 | 国产在线视频一区 | 天天色综合天天 | 香蕉视频色 | 日本泡妞视频 | 亚州性无码不卡免费视频 | 亚洲热在线视频 | 黄色片久久久久 | 国产精品国产馆在线真实露脸 | 免费高清av | 小镇姑娘国语版在线观看免费 | 久久午夜夜伦鲁鲁一区二区 | 亚洲第一av网站 | 欧美三极片 | 加勒比中文无码久久综合色 | 欧美成人一区二免费视频小说 | 欧美又大又黄又粗高潮免费 | 欧美日韩精品在线观看 | 免费三级网站 | 国产韩国精品一区二区三区 | 91精品国产乱码久久久久久张柏芝 | 香港三级日本三级三69 | 午夜婷婷色 | 自拍偷拍第3页 | 精品中文字幕一区二区 | 青青草手机在线视频 | 久久96国产精品久久99软件 | 91成人破解版| 国内精品久久久久久久久久清纯 | 波多野结衣av在线观看 | 欧美三级理论 | 久久人妻av一区二区软件 | 国产精品jizz在线观看软件 | 狠狠做五月深爱婷婷 | 69堂国产成人免费视频 | 久久亚洲精品国产精品紫薇 | 香港三级午夜理伦三级 | 九色.com| 国产97在线 | 日韩 | 中文字幕在线观看免费 | 综合图区亚洲欧美另类图片 | 日韩视频在线观看 | 黄色av免费在线播放 | 国产白嫩初高中害羞小美女 | 男女一级片 | 韩日av在线| 日韩成人激情 | 亚洲一区久久久 | 性感美女一级片 | 国产成人a人亚洲精品无码 国产男女猛烈无遮挡免费网站 | 丁香婷婷综合激情五月色 | a级免费网站 | 国产又黄又嫩又滑又白 | 波多野结衣乳巨码无在线 | 欧美人成在线视频 | 99久久久无码国产精品免费 | 天天插天天干天天操 | 九九九九九热 | 黄色av免费播放 | 蜜桃av在线播放 | 91亚洲精品一区 | av无码人妻一区二区三区牛牛 | a视频在线 | 午夜无码人妻av大片色欲 | 亚洲最新av| 日本边舌吻边做爽的视频 | 成人在线观看av | 2022久久国产露脸精品国产 | 免费av大片 | 五月婷婷视频在线观看 | 国产综合网站 | 久久国产精品成人片免费 | 欧美激情精品 | 国产又黄又硬又粗 | 午夜精品久久久久久中宇牛牛影视 | 少妇一区二区三区 | 波多av在线 | 午夜dv内射一区二区 | 国精产品一区一区三区视频 | 成人看片在线 | 成人免费看片&#39; | 精品无码人妻一区二区三区不卡 | 成在人线av无码免费 | 人妻中文字幕av无码专区 | 亚洲国产精品久久久久久 | 久久亚洲精品中文字幕冲田杏梨 | 真实的国产乱xxxx在线 | 96国产精品久久久久aⅴ四区 | 国产精品国产三级国产aⅴ下载 | 好吊色免费视频 | 美丽肉奴隷1986在线观看 | 国产51人人成人人人人爽色哟哟 | av有码在线| 韩国精品视频 | 四虎影库 | 日本少妇白嫩猛烈进入免费视频 | 国产另类ts人妖高潮 | 国产99热 | 中文字幕一二三 | 日韩a∨精品日韩在线观看 日韩avav | 日本黄漫动漫在线观看视频 | 国产日韩aaaa片毛片 | 久久久免费看 | 成人免费大片黄在线播放 | 久久尤物免费一区二区三区 | 久久天天躁夜夜躁狠狠躁2022 | 一本加勒比hezyo无码资源网 | 色综合五月| 欧美色交| 成在线人免费视频 | 亚洲国产高清视频 | 少妇饥渴偷公乱第28章 | 六月色丁香 | 亚洲欧洲av在线 | 国产又粗又猛又爽又黄91网站 | 久久先锋男人av资源网站 | 国产96在线 | 欧美 | 欧美日本不卡 | 人人做人人澡人人爽欧美 | 熟妇高潮精品一区二区三区 | 日批免费观看视频 | 国产毛片精品 | 在线天堂新版资源www在线 | 国产精品久久久久久亚洲伦 | 久久久国产精品入口麻豆 | 国产偷国产偷亚洲清高网站 | 久久久久欧美精品 | 精品国产一区二区三区久久久蜜月 | 神宫寺奈绪一区二区三区 | 国产一区福利 | 欧美z○zo变态重口另类黄 | 夜夜操免费视频 | a三级毛片| 毛片色毛片18毛片美女 | 国产精品多人p群无码 | 国产人与禽zoz0性伦免费 | 一个人看的视频在线观看www | 免费久久片 | 两女女百合互慰av赤裸无遮挡 | 亚洲精品综合五月久久小说 | 屁股夹体温计调教play | 国产成人在线观看免费网站 | a级港片免费完整在线观看 a级高清毛片 | 国产伦久视频免费观看视频 | 久久精品aaaaaa羞羞羞 | 一本色道无码道dvd在线观看 | 四虎在线免费视频 | 在线亚洲成人 | 美女无遮挡免费视频网站 | 久久国产一二三 | 久久超碰97人人做人人爱 | 9999热视频 | 欧美专区综合 | 久久久一区二区 | 日韩成人免费观看 | 台湾佬中文字幕 | 乱色熟女综合一区二区三区 | 亚洲精品视频在线观看免费视频 | 国产又黄又粗又猛又爽视频 | 一区二区国产精品 | 国产高清一区二区 | av观看在线免费 | 狠狠色综合一区二区 | 337p嫩模大胆色肉噜噜噜 | 成人激情视频在线观看 | 影音先锋在线看片资源 | 含羞草一区二区 | 欧美抠逼视频 | 欧美激情天堂 |