五月天激情丁香,国产精品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());
    }
}
主站蜘蛛池模板: 国产亚洲精品精品国产亚洲综合 | 国产精品福利视频一区 | 狼人综合伊人网 | 大地资源网第二页免费观看 | 亚洲激情黄色 | 中文字幕人妻熟女在线 | 国产成人一区二区三区小说 | 免费观看日本污污ww网站 | 亚洲国产精品无码久久青草 | yy77777丰满少妇影院 | 亚洲 中文 欧美 日韩 在线 | 男人天堂中文字幕 | 婷婷射图| 午夜精品久久久久久久久久久 | 91丨九色丨高潮 | 欧美3p两根一起进高清免费视频 | 欧美日韩免费一区 | 一本色道久久综合亚洲精品不卡 | 一本久久a精品一合区久久久 | 国产黄色av| 天天澡天天狠天天天做 | 欧美黄色一级大片 | 男人激烈吮乳吃奶视频片 | 色婷婷久久一区二区三区麻豆 | 黄大色黄女片18第一次 | 免费在线观看一区 | 亚洲精品免费看 | 日韩一级黄色大片 | 日韩有码在线播放 | 黄色资源在线 | youjizzcom日本| 日本午夜免费 | 一区二区三区四区日韩 | 每日更新在线观看av | 久久爱资源网 | 精品人妻午夜一区二区三区四区 | 祥仔视觉av| 亚洲视频在线观看 | www.99精品| 亚洲综合av一区二区三区 | 久久国产精品一国产精品 | 人人揉人人捏人人添 | 全黄色毛片 | 多p混交群体交乱小说 | 中文字幕在线影视 | 欧美黑人狂野猛交老妇 | 午夜视频免费在线 | 双性精跪趴灌满h室友4p视频 | 成人精品视频99在线观看免费 | 性xxxxx大片做受免费视 | 手机看片福利一区二区三区 | 国产欧美一区二区在线观看 | 精品国产乱码久久久久久1区二区 | 在线观看免费视频一区 | 国产网红av | 久久久久久久性潮 | 91久久久久久久久久久 | 国内激情自拍 | 都市激情中文字幕 | 久久久久久久蜜桃 | 中文字幕亚洲日韩无线码 | 综合色88| 中国精学生妹品射精久久 | 国产精彩视频在线观看 | 亚洲第一网站男人都懂 | 操碰视频在线 | 黄色国产一区 | 99久久精品久久久久久动态片 | 国产精品久久久对白 | 亚洲天堂久久久久 | 天堂久久爱 | 色一情一乱一乱一区免费网站 | 无遮无挡爽爽免费视频 | 日美韩一区二区三区 | 狠狠色噜噜狠狠狠狠色综合网 | 狠狠五月天 | 狠狠色噜噜狠狠狠狠黑人 | 99精品久久久久久久免费看蜜月 | 日韩精品视频观看 | 观看黄色片 | 成人免费视 | 无码人妻精品一区二区三区蜜桃 | 中文字幕在线观看线人 | 天天摸久久精品av | 2022亚洲无砖无线码 | 国产成人精品久久亚洲高清不卡 | 国产无遮挡免费观看视频网站 | a级国产黄色片 | 无码东京热一区二区三区 | 饭岛爱av片在线播放 | 熟妇人妻不卡中文字幕 | 少妇人妻无码永久免费视频 | 性欧美老人牲交xxxxx视频 | 大屁股熟女一区二区三区 | 欧洲精品va无码一区二区三区 | 色播99| 亚洲精品伦理 | 99热这里只有精品免费播放 | 亚洲欧美国产欧美色欲 | 都市激情一区二区三区 | 人妻丰满熟妇av无码区app | 精品久久久无码中文字幕天天 | 亚洲无人区午夜福利码高清完整版 | 亚洲精品一区二区久 | 丁香五香天综合情 | 成人欧美一区二区 | 国产精品调教奴变态 | 青青青手机频在线观看 | 国产在线播放一区 | 2021中文字幕 | 亚洲欧洲综合 | 午夜视频在线瓜伦 | 日韩高清欧美 | 色播av | 美女的屁股眼网站 | 成人性生生活性生交免费 | 久久精品一区二区免费播放 | 精品国产一区二区三区小蝌蚪 | eeuss秋霞成人影院 | 久久婷婷色一区二区三区asmr | 国产婷婷成人久久av免费高清 | 日本少妇性高潮 | 日韩高清一二三区 | 97久久超碰精品视觉盛宴 | 成人精品久久日伦片大全免费 | 丰满岳乱妇在线观看中字无码 | 国产老头和老头xxxxx免费 | 精品视频一区二区三区四区五区 | 国产第一页屁屁影院 | 四虎在线视频 | yy6080高清性理论片啪 | 艳妇臀荡乳欲伦交换h在线观看 | 男人看片网站 | 中文成人在线 | 色婷婷久久久久swag精品 | 免费网站观看www在线观 | 摸大乳喷奶水www视频 | 播放男人添女人下边视频 | 亚洲最大av网站在线观看 | 啪啪亚洲 | 免费激情视频网站 | 欧美老人巨大xxxx做受 | 国产精品久久久久久久久电影网 | 亚洲天堂网在线播放 | 亚洲成人a√ | 丝袜美腿中文字幕 | 人妻中文字幕乱人伦在线 | 99精品视频在线观看免费播放 | 亚洲国产成人无码av在线影院 | 国产一区视频在线免费观看 | 影音先锋日韩精品 | 在线成人免费视频 | 亚洲乱码国产乱码精品精大量 | 成人在线视频免费 | 日韩午夜伦 | 国产午夜一级 | 一级成人欧美一区在线观看 | 韩国精品一区 | 一本大道久久久久精品嫩草 | 久久99影视 | 乱女午夜精品一区二区三区 | 曰本不卡视频 | 苍井空浴缸大战猛男120分钟 | 久久99国产精一区二区三区 | 天堂网av在线 | 国产女同疯狂作爱系列 | 国产成人精品亚洲一区 | 在线免费不卡视频 | 亚洲综合天堂一区二区三区 | 中文字幕一区av | 天堂网传媒 | 爱情岛论坛亚洲线路一 | 午夜亚洲一区 | 久久亚洲春色中文字幕久久久 | 国产高潮视频在线观看 | 欧美另类专区 | 老司机午夜免费福利 | 蜜臀久久99精品久久久无需会员 | 成人av一区二区兰花在线播放 | 国产亚洲在线观看 | 国产视频97 | 久久妇女 | 国产精品国产精品国产专区不片 | 精品无码一区二区三区水蜜桃 | 激情五月婷婷色 | 一区二区三区在线免费 | 99精品视频免费在线观看 | 欧美日本国产在线 | 99色在线视频 | 国产亚洲91| 婷婷国产天堂久久综合五月 | 国产精品主播 | 免费看成人哺乳视频网站 | 人妻体体内射精一区二区 | 欧美另类人妖 | 免费国产玉足脚交视频 | 国产日产欧美一区二区 | 国产69精品久久久久777糖心 | 懂色av一区二区三区免费观看 | 亚洲精品国产一区二区 | 国产91在线播放 | 精品少妇久久久久久888优播 | 精品一区二区久久久久久久网站 | 日本高清免费aaaaa大片视频 | 成人精品啪啪欧美成 | 性色a码一区二区三区天美传媒 | 亚洲一区 视频 | 日本污污网站 | 欧美aⅴ | 蜜臀91精品国产免费观看 | 69精品欧美一区二区三区 | 国产成人亚洲精品 | 婷婷色影院 | 日韩干 | 九九九热 | 99产精品成人啪免费网站 | 高h捆绑拘束调教小说 | 永久免费的av在线电影网 | 精品久久久av | 亚洲精品一区二区三区蜜臀 | 国产中老年妇女精品 | 国产精品视频第一区二区三区 | 999在线观看视频 | 中文字幕在线天堂 | 国产久色在线拍揄自揄拍 | 国产欧美日韩精品a在线观看 | 中文在线国产 | 催眠调教后宫乱淫校园 | 国产日韩欧美日韩 | 日本午夜免费福利视频 | 韩国美女福利视频 | 国产精品免费视频一区二区三区 | 日本久久高清一区二区三区毛片 | 娇小萝被两个黑人用半米长 | 久久免费视频网 | 日日摸天天添天天添破 | 日本55丰满熟妇厨房伦 | 久久精品日本啪啪涩涩 | 中文字幕一区二区三区精华液 | 国产精品无码成人午夜电影 | 欧美在线视频观看 | 四虎库 | 日韩a在线播放 | 欧美黄色特级视频 | 4438x成人网一全国最大色成网站 | 久久97| 亚洲精品国产一区二区精华液 | 国产精品美女久久久久av超清 | 日本老太做爰xxxx | 动漫卡通精品一区二区三区介绍 | 亚洲精品一二三区久久伦理中文 | 日韩一区二区三区不卡 | 99riav国产精品视频 | 中文字幕激情小说 | 男女激情视频网站 | 欧美xxxx视频 | 少妇的丰满3中文字幕 | 丁香花在线观看免费观看图片 | 地下室play道具走绳结 | 免费av网站在线 | 国产精品乱码一区 | 99久久亚洲精品日本无码 | 国产精品亚洲自拍 | 成人性生交大全免费中文版 | www成人啪啪18软件 | 狠狠亚洲婷婷综合色香五月 | 一本色道久久综合亚洲二区三区 | 米奇7777狠狠狠狠视频 | 狠狠色噜噜狠狠狠狠色综合网 | 日韩三级中文字幕 | 拍拍拍产国影院在线观看 | 日本三级日本三级韩国三级视 | 免费观看日本污污ww网站 | 美女毛片在线观看 | 亚洲人成色7777在线观看不卡 | 中文字幕天堂av | 欧美黄色性生活 | 国产小视频91 | 午夜无码一区二区三区在线观看 | 最近中文字幕在线中文视频 | 天天射射综合 | 91精品国产高清一区二区三区蜜臀 | 亚洲成av人片不卡无码手机版 | 无码熟妇人妻av | 欧美一二三 | 国产精品久久久久久久久免费相片 | 黄色男人的天堂 | 中文字幕精品亚洲无线码二区 | 爱色av·com| 欧美日本日韩 | 日本aⅴ写真网站免费 | 日日夜夜婷婷 | 中国丰满少妇人妻xxx性董鑫洁 | 国产成a人亚洲精v品无码性色 | 毛茸茸熟妇丰满张开腿呻吟性视频 | 人妻av综合天堂一区 | 婷婷免费 | 亚洲亚洲人成综合网络 | 香蕉视频一区 | 看全黄大色黄大片美女人 | xvideos成人免费视频 | 午夜激情在线观看视频 | 欧美精品www | 爱情岛论坛首页永久入口 | 成人av网站大全 | 日韩中文字幕一区 | 神马久久久久久久久久久 | 日本草草视频 | 日韩免费高清大片在线 | 亚洲成人一区二区在线观看 | 中文字幕av一区中文字幕天堂 | 美女免费网站在线观看 | 狠狠干综合网 | 中文字幕 日韩 欧美 | 少妇厨房愉情理伦bd在线观看 | 91免费黄 | 天天做天天爱夜夜爽毛片 | 亚洲精品一区二区三区在线观看 | 日韩a无v码在线播放 | 狠狠色噜噜狠狠狠狠97俺也去 | 黄色免费在线观看视频 | 老司机午夜免费福利 | 色国产视频| 男女啪啪无遮挡免费网站 | 欧美黑人乱大交 | 国产一区视频网站 | 手机看片日韩 | 中文字幕com | 国产91在线播放九色000 | 成人黄色一级 | 欧美激情精品久久久久久免费 | 日韩v欧美v日本v亚洲v国产v | 国产精品久久久久久久久久妞妞 | 亚洲免费黄色 | 亚洲一区二区三区四区 | 超碰在线观看99 | 国产福利99| 双性精跪趴灌满h室友4p视频 | 国产呻吟av | 日韩欧美无 | 天天干天天爱天天射 | 亚洲第一大综合区 | 国产夫妻自拍小视频 | 张警花视频99精品视频 | 天堂va欧美va亚洲va好看va | 精品国产一区二区三区四区vr | 91久久久久久波多野高潮 | 亚洲va成无码人在线观看天堂 | 黄色片子视频 | 网站在线观看你懂的 | 台湾佬中文字幕 | 老司机免费在线视频 | 国产精品午夜无码体验区 | 国产九色porny | 国产视频一区二区在线 | 婷婷精品国产一区二区三区日韩 | 中文在线а天堂中文在线新版 | 毛片av在线播放 | 亚洲中文字幕久久无码精品 | 国产寡妇亲子伦一区二区 | 91精品国产自产91精品 | 国产人澡人澡澡澡人碰视 | 天堂草在线观看 | www国产亚洲 | 国产精品免费拍拍10000部2 | 国产成人无码精品亚洲 | 伊人成人在线视频 | 天堂国产永久综合人亚洲欧美 | 国内综合精品午夜久久资源 | 秋霞影院午夜丰满少妇在线视频 | 亚洲一区二区三区在线观看视频 | 国产精品视频全国免费观看 | 欧美 日韩 国产 成人 在线观看 | 国产成人av在线婷婷不卡九色 | 久久久久亚洲精品无码网址 | 国产另类精品 | 大又大又粗又硬又爽少妇毛片 | 奇米一区二区三区四区久久 | 国产黄色大片视频 | 亚洲福利 | 区二区三区玖玖玖 | 五月在线视频 | 综合色在线观看 | 久久天天躁狠狠躁夜夜av | 久久精品高清 | 亚洲人成电影网站色 | 老熟女乱子伦 | 亚洲天堂网在线视频 | 欧美一卡二卡三卡四卡视频区 | 国产裸体永久免费无遮挡 | 亚洲天堂99 | av资源一区 | 最新中文字幕免费看 | 国产视频第三页 | 久久久精品人妻无码专区不卡 | 国产成人精品一区二区三区网站观看 | 日韩一区二区三区av | 午夜天堂精品久久久久 | 久久久久爽爽爽爽一区老女人 | 91精品国产综合久久久久久久久久 | 国产精品高潮呻吟久久久 | 国产日韩aaaa片毛片 | 婷婷丁香六月激情综合啪 | 国产伦理一区二区 | 玖色视频| 一本久久a久久精品亚洲 | 人妻夜夜爽天天爽三区麻豆av网站 | 农村寡妇一区二区三区 | 亚洲欧美强伦一区二区 | 8090yy成人免费看片 | 91精品国产一区二区三区 | 女人毛片a毛片久久人人 | 人人爽人人爽人人爽人人片av | 亚洲无人区小视频 | 亚洲免费黄网 | 青青青视频在线播放 | 亚洲拍拍视频 | 欧美性猛少妇xxxxx免费 | 国产线播放免费人成视频播放 | 欧美性猛交ⅹxxx乱大交3 | 97资源共享在线视频 | 色一情一区二区三区四区 | 国产精品无码久久综合 | 国产日产欧美a级毛片 | 91久久精品日日躁夜夜躁国产 | 五月婷婷激情 | 日韩精品2 | 在线观看日韩中文字幕 | 国产精品欧美激情 | 伦人伦xxx国语对白 伦为伦xxxx国语对白 | 亚洲午夜精品久久久久久人妖 | 日韩精品h | 91亚洲精华国产精华 | 男人午夜免费视频 | 全黄久久久久a级全毛片 | 中文字幕在线不卡一区二区 | 欧美精品一区二区久久久 | 丰满少妇被猛烈进入无码 | 国产色99 | av一片 | 天天综合天天做天天综合 | 成人国产精品久久久春色 | 中文字幕无线码免费人妻 | 精品熟人一区二区三区四区 | aaa级片| 九九热精品在线观看 | 中日韩中文字幕区 | 亚洲成a∨人片在线观看无码 | 成人无码精品一区二区三区 | 久久这里精品国产99丫e6 | 成年人黄色片 | 免费在线观看亚洲 | 亚洲码无人客一区二区三区 | 韩国r级露器官真做av | 欧美 国产精品 | 免费一淫片6级 | 伊人成色综合网 | 日本中文字幕有码在线视频 | 北条麻妃一对7黑人mv | 婷婷国产v亚洲v欧美久久 | 国产成人亚洲综合无码精品 | 国产精品麻豆免费观看 | 欧美在线www | 日韩欧美亚洲国产 | 一本视频在线 | 99精品视频播放 | 久久午夜精品视频 | 一本久久综合 | 天天综合色网 | 午夜精品久久 | 成人香蕉视频在线观看 | 国产午夜免费视频 | 奶头挺立呻吟高潮视频 | 国产成人三级 | 欧美xxxx吸乳 | 日韩高清一级 | 国产精品久久久久久久影院 | 日本在线不卡一区二区三区 | 456成人网 | 欧美高清性xxxxhd | 巴西少妇xxb大毛又多 | 欧美精品videos极品 | 欧美深性狂猛ⅹxxx深喉 | 香蕉97超级碰碰碰免费公开 | 在线不卡一区二区 | 一级黄色片毛片 | 国产精品日韩一区 | 亚洲天堂男 | 特黄特色大片免费观看播放器 | 日韩激情小视频 | 国产一级一片 | 欧美性一区二区三区 | 久久99日韩国产精品久久99 | 国产精品国产三级国产普通话对白 | 国产夜色精品一区二区av | 乱人伦精品视频在线观看 | 欧美黄色片网站 | 午夜视频黄色 | 中文字幕免费在线看线人 | 高清国产在线观看 | 欧美一区二区伦理片 | avtt2014天堂网 | 中国美女乱淫免费看视频 | 无码人妻aⅴ一区二区三区有奶水 | 理论片91 | 亚洲精品一区二区三区不卡 | 久久久久久国产精品久久 | 久在线观看 | 牛牛a级毛片在线播放 | 国产精品水嫩水嫩 | 久久色资源网 | a视频网站 | 手机看片国产一区 | 蜜桃av网| 婷婷成人在线 | 精品蜜桃一区二区三区 | 久久久久中文字幕亚洲精品 | 两男一前一后cao一女 | 国产91边播边对白在线 | 日本黄色免费 | 在线观看国产一区二区三区 | 亚洲36d大奶网| 狠狠操综合网 | 国产 日韩 一区 | 国产美女又黄又爽又色视频免费 | 石原莉奈一区二区三区在线观看 | 久久99精品久久久久久狂牛 | 性折磨bdsm欧美激情另类 | 欧美性受xxxx黑人猛交 | 亚洲图片在线播放 | 爱爱免费视频 | 天堂无乱码 | 欧美做爰xxxⅹ性欧美大片 | 国产精品7777cos | 国产美女极度色诱视频www | 日韩久久网 | 羞羞视频在线网站观看 | 亚洲国产综合色产精品色在线 | 国产亚洲精品美女久久久 | 中文在线免费看视频 | 五月婷婷久久久 | bnb998成人免费 | 96久久精品| 亚洲精品3区 | 男人j进入女人j内部免费网站 | 亚洲香蕉精品 | 四虎5151久久欧美毛片 | 国产成人综合美国十次 | 青青草成人免费在线视频 | 免费av不卡在线观看 | 人妻丝袜中文无码av影音先锋专区 | 999久久久久久久久6666 | 欧美日韩久久久精品a片 | 国产女人18毛片18精品 | 男女互操视频 | 高h全肉老汉嫩草文 | 屁屁国产草草影院ccyycom | 亚洲人av在线影院 | 天堂va欧美ⅴa亚洲va一国产 | 无码国产精品一区二区免费i6 | 国产精品久久久久影院 | 少妇又色又紧又黄又刺激免费 | 日韩欧美国产一区二区三区 | 欧美成人欧美edvon | 一区二区三区中文字幕在线观看 | 中文字幕丰满乱孑伦无码专区 | 玖玖久久 | 五月天黄色av| 国产成人无码a区在线观看视频 | 亚洲色啦啦狠狠网站 | 荡女淫春 在线观看69影院 | 女人夜夜春高潮爽a∨片传媒 | 99这里只有精品视频 | 国产精品午夜久久 | 日日噜噜噜夜夜爽爽狠狠 | 国产蜜臀av在线一区尤物 | 欧美人与性动交0欧美精一级 | 国产欧美一区二区三区国产幕精品 | 99热这里只有精品最新地址获取 | 日韩精品一区二区三区蜜臀 | 欧美性xxxx极品少妇 | 日本免费网站在线观看 | 国产va在线观看免费 | 成年美女黄网 | 国产一区日韩二区欧美三区 | 欧美亚洲日韩国产人成在线播放 | 夜夜躁狠狠躁日日躁视频 | 国产明星精品一区二区刘亦菲 | 欧美日韩精品在线观看视频 | 日韩黄色一级大片 | 国产一区二区三区视频播放 | 亚洲天堂欧美 | 亚洲第一影视 | 91av中文字幕 | 五月天中文字幕在线 | 午夜免费视频 | 精品国产a∨无码一区二区三区 | 欧洲熟妇色xxxx欧美老妇软件 | www毛片| 久青草国产视频 | 捆绑紧缚一区二区三区在线观看 | 男人天堂网av | 日韩乱码人妻无码系列中文字幕 | 96超碰在线 | 亚洲精品99久久久久中文字幕 | 国产精品视频一区二区三区四区国 | 午夜精品国产精品大乳美女 | 爽爽影院免费观看 | 日本欧美在线 | 亚洲国产成人久久综合 | 四虎久久久 | 二区三区在线观看 | 国偷自产av一区二区三区 | 久久无码人妻丰满熟妇区毛片 | 51国偷自产一区二区三区的来源 |