五月天激情丁香,国产精品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无码区app | 青青草视频在线观看免费 | 欧美性群另类交 | 99久久久国产精品免费99 | 在线无码va中文字幕无码 | 欧洲午夜精品 | av在线免费播放 | 久久久亚洲精品一区二区三区浴池 | av资源新版在线天堂 | 丰满少妇人妻久久久久久 | 成人网站www污污污网站 | 欧美成人精品欧美一级 | 久久久麻豆精品一区二区 | 97精品自拍| 亚洲精品乱码久久久久久蜜桃 | 久久久久www| 国产精品一久久香蕉国产线看观看 | 奇米四色777 | 性猛交富婆╳xxx乱大交视频 | 影音先锋久久久久av综合网成人 | 天堂资源最新在线 | 农村村妇真实偷人视频 | 免费无码黄网站在线观看 | 国产 欧美 日韩 在线 | 97高清国语自产拍 | 国产男女无遮挡猛进猛出 | 爱的色放3 | 91美女片黄在线观看成欢阁 | 亚洲精品成人cosplay | 水蜜桃无码视频在线观看 | 在线观看小视频 | 石原莉奈av调教中文字幕 | 性久久久久久久久波多野结衣 | 可以免费看的黄色网址 | 国产男女猛烈无遮挡 | 国产99久久久国产精品成人免费 | 国产乱国产 | 欧美视频在线看 | 伊人情人综合 | 国产主播av| 亚洲www啪成人一区二区麻豆 | 久久精品一区二区三区四区毛片 | 成人 黄 色 免费播放 | 精品久久久久国产免费第一页 | 久久精品国产精品 | 亚洲免费高清视频 | 丰满少妇被猛烈进入高清播放 | 亚洲精品久久五月天堂 | 亚洲国产成人精品女人 | 粉嫩小箩莉奶水四溅在线观看 | 亚洲处破女av日韩精品 | 黄色影院久久 | 亚洲 欧美 激情 另类 校园 | 小箩莉末发育娇小性色xxxx | 婷婷伊人综合中文字幕 | 3级av| 少妇把腿扒开让我爽爽视频 | 午夜视频网址 | 成人激情免费 | 日本www色 | 人人摸人人搞人人透 | 成人高清免费观看mv | 国产精品一二三四 | 国产亚洲精品久久久久5区 成熟了的熟妇毛茸茸 | 精品夜夜澡人妻无码av | 国产极品一区二区 | 大尺度网站在线观看 | 九九av在线| 亚洲伊人天堂 | 男人天堂中文字幕 | 国产精品久久久久久中文字 | 就去干成人网 | 国产精品一区二区三区四区五区 | 亚洲精品久久久久久一区二区 | 亚洲另类春色偷拍在线观看 | 中文字幕在线观看日本 | 在线天堂资源www在线中文 | 精品免费观看 | 欧美大片网站 | 亚洲一区免费 | 久在线| 妓院一钑片免看黄大片 | 午夜精品免费看 | 狠狠看 | 国产精品久久人妻无码网站一区 | 欧美一区二区日韩国产 | 亚州视频在线 | 青草青草久热精品视频国产4 | 色偷偷亚洲男人本色 | 人人干在线视频 | 国产精品爽爽久久久久久豆腐 | zzijzzij日本成熟少妇 | 国产乱码精品 | 一区二区三区国产 | 久久免费看片 | 怡红院国产 | 婷婷色国产偷v国产偷v小说 | 国产亚av手机在线观看 | 亚洲精品乱码久久久久久蜜桃 | 欧美在线资源 | 亚洲一区二区三区日韩 | 国产人妖ts重口系列网站观看 | 成人日韩在线观看 | 强videoshd酒醉 | 国产精品日本一区二区不卡视频 | 国产av无码专区亚洲精品 | 狠狠色婷婷丁香综合久久韩国 | 久久一日本道色综合久久 | 91久久久www播放日本观看 | 国产又黄又爽又色的免费视频白丝 | 精品国产一区二区三区忘忧草 | 亚洲清色| 一区二区三区蜜桃 | 人人爱人人草 | 日韩在线精品强乱中文字幕 | www.一区二区 | 强美女免费网站在线视频 | 天天做天天爱 | 任我爽在线 | 国产成人自拍视频在线观看 | 最新av片 | 欧美老熟妇乱xxxxx | 久久综合色鬼综合色 | 免费在线观看黄色网址 | 亚洲成人中文 | 国产精品女同一区二区软件 | 激情黄色小说视频 | 国产一区二区四区 | 一区二区三区av在线 | 久久精品网址 | 亚洲国产另类久久久精品网站 | 初尝黑人嗷嗷叫中文字幕 | 成人av一区二区三区在线观看 | 丰满少妇高潮惨叫久久久久 | 5d肉蒲团之性战奶水 | 亚洲一二三级 | 九色丨9lpony丨大学生 | 韩国三级hd中文字幕有哪些 | 国产做a爰片久久毛片a片美国 | 亚洲欧美系列 | 黑人性受xxxx黑人xyx性爽 | 成人免费无码大片a毛片软件 | 亚洲丁香婷婷久久一区二区 | 一本大道久久香蕉成人网 | 久久国产成人午夜av影院武则天 | 制服.丝袜.亚洲.中文.综合懂色 | 成人av播放 | 色av性av丰满av国产 | 真实国产老熟女无套中出 | 尤物精品视频在线观看 | 午夜久久久久久 | 亚洲成av人片一区二区梦乃 | 永久免费看毛片 | 五月婷婷深深爱 | 国产69熟| 日韩中文字幕网站 | 99精品偷拍视频一区二区三区 | 精品99在线观看 | 尤物av无码色av无码 | 777亚洲 | 色综合久久88 | av资源部 | 国产男女视频在线观看 | 少妇与公做了夜伦理69 | 日本色妞| 国产精品无码专区 | 一级片特黄 | 日本福利社 | 久久爽久久爽久久免费观看 | 日韩图片一区 | 日本欧美大码aⅴ在线播放 中文人妻无码一区二区三区在线 | 在线观看国产黄色 | 少妇做爰xxxⅹ性视频 | 99色精品| 免费中文字幕日韩 | 国产九九九九九 | 国产chinesehdxxxx麻豆网 | 亚洲精品乱码久久久久久动图 | 大肉大捧一进一出好爽视频动漫 | 91免费精品 | 引诱我的邻居少妇在线播放 | 久久日本三级韩国三级 | 成人传媒 | 日本丰满少妇xxxx | 无套内谢少妇在线观看视频 | 久久丫精品国产 | 亚洲精品国产综合久久久久紧 | 亚洲欧美中文日韩在线v日本 | 五月花婷婷 | 熟女丰满老熟女熟妇 | 看毛片的网址 | 男女天堂av | 伊人开心网| 国产乱码精品一区二区三区四川人 | 神马午夜我不卡 | 亚洲欧洲精品成人久久曰 | 少妇一区二区视频 | 亚洲精品亚洲 | 日本麻豆一区二区三区视频 | 一本a道v久大| www.jizz国产| 夜先锋av资源网站 | 亚洲激情视频小说 | 一区二区三区视频网站 | 亚洲午夜网 | 羞羞动漫在线看免费 | 国产一级视频在线播放 | 成人人人人人欧美片做爰 | 国产伦精品一区二区三区免费优势 | 师生出轨h灌满了1v1 | 97网站| 日本又色又爽又黄的大片 | 久久久免费网站 | √最新版天堂资源在线 | 欧美激情内射喷水高潮 | av日韩精品 | 国产精品久久久久久久午夜 | 亚洲精品乱码久久久久久蜜桃91 | 国产亚洲人成网站在线观看 | 中文字幕av久久爽一区 | 波多野结衣在线观看一区二区 | 亚欧av在线 | 国产精品16p | 超碰在线a| 免费在线观看一区 | 交换配乱吟粗大农村大坑性事视频 | 一级全黄裸体免费观看视频 | 国产精品区av | 涩涩鲁亚洲精品一区二区 | 少妇又色又紧又爽又高潮 | 久久综合a∨色老头免费观看 | 懂色av中文字幕一区二区三区 | 欧美一区二区免费 | 国产乱码精品一区二区三区精东 | 国产高清av | 两根大肉大捧一进一出好爽视频 | av片久久| 欧美成人26uuu欧美毛片 | 熟女视频一区二区在线观看 | 无码乱码av天堂一区二区 | 成人啪啪色婷婷久 | 激情午夜网 | 国产农村老太xxxxhdxx | 国产精品麻豆入口 | 日韩美女免费线视频 | 蜜桃视频在线观看免费视频网站www | 极品少妇被黑人白浆直流 | 国产aⅴ精品 | 国产精品一区二区三区四区五区 | 1000部拍拍拍18勿入免费视频 | 免费a级毛片出奶水 | 久久久丁香 | 日韩在线观看中文字幕 | 免费av片 | 国产精品视频六区 | 久久小草成人av免费观看 | 黄网在线播放 | 色综合婷婷 | 天堂中文在线最新 | 色天使亚洲 | 亚洲成av人在线观看网站 | 香港三日本三级少妇三99 | 国产成人秘密网站视频999 | 国产精品久久久久久久免费 | 日本毛片在线观看 | 中文字幕日韩精品一区二区三区 | 欧美性xxxx顶级按摩 | 一本一本久久a久久精品综合麻豆 | 日韩久久久久 | 亚洲国产av一区二区三区 | 欧美又粗大人妖一进一出 | 国产放荡av国产精品 | 少妇下面好紧好多水真爽播放 | 国产亚洲精品久久久优势 | 国产欧美日韩va另类在线播放 | 国偷自产视频一区二区久 | 女职员的丝袜 中文字幕 | 亚洲人成电影在线观看影院 | 成年丰满熟妇午夜免费视频 | 欧美sm视频 | 91在线免费播放 | 久久久夜色精品亚洲 | 国产亚洲精品久久久久久久久动漫 | 久久久精品国产免费观看一区二区 | 亚洲 成人 av | 狠狠干2022| 色一情一伦一子一伦一区 | 绫濑遥av | 欧美不卡视频 | 国产精品久久九九 | 后宫一级淫片免费放 | 免费视频在线观看1 | 6~12呦孩精品xxxx视频视频 | 亚洲第一黄| 欧美精品与人动性物交免费看 | 国产91区| 欧美性生交xxxxx久久久 | 色悠悠在线视频 | 大肉大捧一进一出好爽视频mba | 97青娱国产盛宴精品视频 | 日日噜噜噜夜夜狠狠久久蜜桃 | 亚洲黄色短视频 | 麻豆三级视频 | caopeng在线视频 | 佐佐木明希av在线 | 色综合久久88色综合天天 | 91高清在线视频 | 欧美日韩精品国产 | 夜夜春很很躁夜夜躁 | 在线国产小视频 | 国产美女永久无遮挡 | 日日干日日爽 | 四虎影视成人永久免费观看亚洲欧美 | 成熟女人毛片www免费版在线 | 韩日视频 | 天天草视频 | 97色碰碰公开视频 | 日日噜噜噜噜人人爽亚洲精品 | 91桃色污 | www.香蕉视频.com | 无码日韩人妻精品久久蜜桃 | 国产成人午夜片在线观看高清观看 | 欧美一区二区三区喷汁尤物 | 川上奈美侵犯中文字幕在线 | 欧美精品人人做人人爱视频 | 亚洲精品99久久久久中文字幕 | 日韩中文人妻无码不卡 | 午夜精品国产精品大乳美女 | 91日批视频| 欧美高清久久 | 偷看做性肉体探欲k8 | 亚洲视频在线一区 | 欧美精品中文字幕亚洲专区 | 亚洲日产精品一二三区 | 日韩精品91偷拍在线观看 | 国产一极片 | 五月天黄色av | 免费观看全黄做爰大片小说 | 中文字幕免费在线看线人 | 妇女性内射冈站hdwww000 | 色综合久久中文娱乐网 | 韩国黄色精品 | 久久视频在线视频 | 国产人伦激情在线观看 | 日本免费视频在线观看 | 岛国精品一区 | 国产精品久久久久久久久免费樱桃 | 精品国产乱码久久久久久丨区2区 | 国产精品极品美女自在线观看免费 | 国产成人av在线影院 | 韩国一区二区三区在线观看 | 看一级黄色毛片 | 影音先锋成人资源网站 | 日本人妻中文字幕乱码系列 | 中文字幕av在线播放 | 91亚洲国产成人精品一区二三 | 两个奶头被吃高潮视频 | 国产精品久久久久久亚洲影视公司 | 天天躁夜夜躁天干天干200 | 成人啪啪免费网站 | 亚洲精品二三区 | 黄色免费视频在线 | 丰满少妇夜夜爽爽高潮水网站 | 久久久久久久久久久久久久久久久久 | 亚洲一区和二区 | 日本人配人免费视频人 | 色哟哟网站在线观看 | 色翁荡息又大又硬又粗又爽 | 99久久久国产精品免费蜜臀 | 一区二区乱子伦在线播放 | 偷拍视频亚洲 | 日韩片在线 | 性视频免费的视频大全2015年 | 欧美吻胸吃奶大尺度 | 久久久久久久久久一区二区三区 | 国产精品1区2区 | 免费观看性欧美大片无片 | 免费无码作爱视频 | 国产乱淫av片免费 | 日韩黄色短视频 | 自拍偷拍av | 91探花福利精品国产自产在线 | 欧美一级做a爰片久久高潮 欧美一级做a爰片免费视频 | 国产精品系列在线观看 | 久久久久久国产精品美女 | 国产a一级片| 久热免费 | 麻豆久久久久 | 美女视频黄频大全免费 | 夜夜影院未满十八勿进 | 全部av―极品视觉盛宴 | 成人av网站在线观看 | 天天撸夜夜操 | 岬奈奈美女教师中文字幕 | 精品国产黄色片 | 色偷偷色偷偷色偷偷在线视频 | 特级一级黄色片 | 日韩伦人妻无码 | 朝鲜一级特黄真人毛片 | 国产成人精品一区二区三区 | 中文字幕一区二区三区四区久久 | 成人精品 | 久久久受www免费人成 | 免费的黄色影片 | 国产一级中文字幕 | 国产69精品久久久久777 | 中文字幕ipx696希岛あい | 久久综合色综合 | 精品小视频在线观看 | 921国产乱码久久久久久 | 好大好硬好爽aaaaa视频 | 亚洲丶国产丶欧美一区二区三区 | 亚洲精品视频在线观看免费 | 中文字幕第23页 | 激情五月综合色婷婷一区二区 | 午夜av亚洲女人剧场se | 亚洲欧美视频一区二区 | 国产精品有限公司 | 丁香六月婷婷开心婷婷网 | 久久亚洲精品无码av | 激情五月激情综合 | 深夜成人在线 | 人妻少妇精品久久 | 亚洲女初尝黑人巨高清 | 第一色网站 | 夫の部长が调教中文字幕 | 天堂va蜜桃一区二区三区 | 影音先锋成人网 | 日本阿v视频在线观看 | 99少妇偷拍视频在线 | 精品婷婷色一区二区三区蜜桃 | 中文字幕高清在线 | 777国产盗摄视频000 | 视频国产一区 | 色中色综合 | 日韩少妇精品av一区二区 | 很黄的网站在线观看 | 成人精品一区日本无码网站 | 人妻熟女αⅴ一区二区三区 | 美女视频黄a视频全免费 | 少妇做爰免费视看片 | 超碰免费在线 | 亚洲免费色 | 欧美精品乱人伦久久久久久 | 99久久人妻精品免费二区 | 欧美日韩久久久久久 | 韩国三级在线 | 久久99精品久久久久婷婷 | 国产精品免费入口 | 亚洲国产黄色片 | 国产国产精品久久久久 | 在线观看亚洲成人 | 四十五十老熟妇乱孑视频 | 永久免费无码网站在线观看 | 日本在线观看 | 999久久久无码国产精品 | 狼人久草 | 欧美10p| 欧美激情一区二区久久久 | 国产精品成年片在线观看 | 夫の友人 风间ゆみ 在线 | 性一交一乱一伧国产女士spa | 亚洲国产精品va在线看黑人 | 福利二区视频 | 色天天综合久久久久综合片 | 91麻豆精品国产91久久久点播时间 | 国产精品一区二区三区不卡 | 中文字幕在线播放第一页 | 欧美xxxxx少妇 | 日韩精品一区二区三区在线播放 | 亚洲福利网站 | av一区二区免费 | 一区二区三区日韩视频在线观看 | 丝袜人妻一区二区三区网站 | 拨开少妇两片肥嫩的肉 | 国产亚洲精品一区二区三区 | 精品久久一区 | 91在线亚洲 | 欧美黑人粗大 | 精品日韩一区二区三区免费视频 | 日韩欧美亚洲精品 | 大蜜桃臀偷拍系列在线观看 | 视频一区二区欧美 | 在线观看中文字幕 | 国产乱码精品一区二区三 | 噜噜色av | 国产成人精品白浆久久69 | 欧美影院adc | 中文字幕无码人妻aaa片 | 伊人久久国产 | 伊人自拍| 白嫩少妇bbw撒尿视频 | 黄色一级免费视频 | 日韩在线免费观看av | 国产丝袜视频 | h片观看 | 97在线观看视频免费 | 91人人爽 | 日韩欧美中文在线观看 | 91亚洲精品久久久久图片蜜桃 | 亚洲另类视频 | 天堂网一区二区 | 欧美激情一区二区 | 日韩尤物| 丰满熟妇人妻中文字幕 | 国产精品无码永久免费不卡 | 99久久亚洲精品视香蕉蕉v | 欧美一级网站 | 最近最新中文字幕 | 春意影院福利社 | 夜色一区| 欧美福利精品 | 国产在线精品二区 | 国产成人精品一区二区色戒 | 精品亚洲一区二区三区在线观看 | wwwse天堂| 黑人性xxx | 一道本在线播放 | 九草在线观看 | 精品少妇一区 | 又大又长粗又爽又黄少妇视频 | 国产伦精品一区二区 | 18处破外女出血在线 | 一级片免费网址 | 亚洲欧洲久久 | 国产精品视频久久久久久久 | 天天做天天爱天天做 | 永久免费无码网站在线观看 | 5a级毛片 | 中国性满足hd老少配 | 91麻豆精品国产91久久久点播时间 | 岛国av免费 | www天天干com | 亚洲一久久久久久久久 | 超碰影院在线观看 | 一区二区三区波多野结衣 | 少妇高潮无套无遮挡内谢小说 | 激情综合一区二区三区 | 欧美日韩精品人妻狠狠躁免费视频 | 日本成人在线视频网站 | 日本丰满大乳免费xxxx | www九九热com| 久久成人免费网站 | 亚洲欧美综合精品久久成人 | 精品国产黑色丝袜高跟鞋 | 在线精品视频免费观看 | 日韩va在线 | 依人综合网| 亚洲免费人成在线视频观看 | 日韩美女啪啪 | 亚洲第一页在线观看 | 自拍偷拍激情小说 | 野花社区www高清视频 | 欧美色图在线视频 | 五月天综合色 | 欧美a在线观看 | 99国产精品久久久 | 午夜剧场免费在线观看 | 少妇av在线播放 | 美国av一区二区 | 久久精品国产久精国产一老狼 | 一区二区三区四区国产 | 欧美人与物videos另类 | 在线看片免费人成视频播 | 国产精品盗摄!偷窥盗摄 | 秋霞在线观看秋 | 中出内射颜射骚妇 | 深夜小视频在线观看 | 国内精品久久久久久久97牛牛 | 欧美肥老太牲交大战 | 欧美黄色www | 一区二区三区无码视频免费福利 | 天天干天天爱天天射 | 亚洲人ⅴsaⅴ国产精品 | 欧美午夜三级 | 日本另类αv欧美另类aⅴ | 久艹视频免费看 | 伊伊人成亚洲综合人网香 | 日本少妇中出 | 99热自拍偷拍| 国产在线观看免费视频今夜 | 99热这里只有精 | 欧美性受xxxxx | 久久久久国色av免费看图片 | 网站黄色在线免费观看 | 日本中文字幕有码 | 久久频这里精品99香蕉 | 亚洲无限观看 | 天堂va蜜桃一区二区三区 | 男人的天堂久久久 | 中国猛少妇色xxxxx | 亚洲精品亚洲人成人网 | 国产一区二区中文字幕 | 成人18aa黄漫免费观看 | 好紧好爽好湿别拔出来视频男男 | 日日草视频 | 国产成人精品电影在线观看 | 久久久女女女女999久久 | 天天看国91产在线精品福利桃色 | 天天天操操操 | 熟女人妻av五十路六十路 | 灌满闺乖女h高h调教尿h | 精品一区二区三区四区视频 | 久久日韩激情一区二区三区四区 | 91在线无精精品一区二区 | 欧美精品播放 | 午夜视频日韩 | 久久伊人精品中文字幕有软件 | 白嫩嫩翘臀美女在线视频 | 在线五月天 | 亚洲熟妇色xxxxx亚洲 | 精品国产乱码久久久久久婷婷 | jyzz中国jizz十八岁免费 | 深夜男女福利18免费软件 |