乐于分享
好东西不私藏

8、uni-app项目——“短视频”微信小程序

8、uni-app项目——“短视频”微信小程序

1. uni-app框架概述

    uni-app是使用Vue.js开发的一个前端框架,基于该框架可以很方便地进行多端项目开发,只需要编写一套代码,即可生成为多个平台项目。uni-app框架支持的平台包括iOS、Android、响应式Web和各种主流的小程序等。

uni-app框架开发项目的4点优势

1、平台能力不受限。使用uni-app框架进行项目开发能做到“一套代码,多端发行”。

2、性能体验优秀。加载新页面速度快,可以自动更新数据。

3、基于通用技术栈,学习成本低。uni-app框架基于前端开发中比较通用的Vue.js技术栈,使开发者不必增加学习成本。

4、具有开放的生态且组件更丰富。例如,支持通过npm安装第三方包,支持微信小程序自定义组件及SDK,支持微信生态的各种SDK。

参考学习官网:

https://uniapp.dcloud.net.cn/quickstart.html

2. HBuilder X开发工具

下载:https://dcloud.io/hbuilderx.html

地址:https://ext.dcloud.net.cn/plugin?name=compile-node-sass

3. 创建uni-app项目

4. uni-app项目的目录结构

5. 将uni-app项目运行至微信小程序

6. uni-app项目的全局配置文件

7.案例准备事项

1.项目准备

2. 实现添加待办事项的功能

1.初始化数据(index.vue)

<script>export default {   data() {    return {       showList: [],       value'',       status''	}   },   methods: {	}}</script>

2.编写页面实现(index.vue)

<template><view><viewclass="top"><inputtype="text"placeholder="请输入待办事项"v-model="value"><viewclass="createButton" @click="handleClick">添加</view></view></view></template>
<script>export default {data() {return {showList: [],value'',status''			}		},methods: {handleClick() {this.showList.push({valuethis.value,status'todo'// 表示待办事项idnew Date().getTime()				})console.log(this.showList)this.value = ''			},		}	}</script><style>/* 顶部区域 */.top {  width100%;  height80rpx;  display: flex;  align-items: center;  justify-content: space-between;  padding15rpx 0 15rpx 0;  border-bottom1px dashed lightgray;}.top input {  width500rpx;  margin-left20rpx;}.top .createButton {  width100rpx;  height60rpx;  display: flex;  align-items: center;  justify-content: center;  border1rpx solid gray;  border-radius50rpx;  margin-right20rpx;}</style>

3. 实现列表区域

待办事项:

<template><view><viewclass="top"><inputtype="text"placeholder="请输入待办事项"v-model="value"><viewclass="createButton" @click="handleClick">添加</view></view><viewclass="bottom"><viewclass="title">待办事项</view><viewv-for="(item, index) in showList":key="item.id"><viewv-if="item.status === 'todo'"class="doing"><checkboxv-on:click="doingHandle(item.id, index)" />					{{ item.value }}</view></view></view></view></template>
<script>export default {data() {return {showList: [],value'',status''			}		},methods: {handleClick() {this.showList.push({valuethis.value,status'todo'// 表示待办事项idnew Date().getTime()				})console.log(this.showList)this.value = ''			},doingHandle(id, index) {const item = this.showList.find((item) => item.id === id)				item.status = 'finished'			},		}	}</script>

已办事项

<template><view><viewclass="top"><inputtype="text"placeholder="请输入待办事项"v-model="value"><viewclass="createButton" @click="handleClick">添加</view></view><viewclass="bottom"><viewclass="title">待办事项</view><viewv-for="(item, index) in showList":key="item.id"><viewv-if="item.status === 'todo'"class="doing"><checkboxv-on:click="doingHandle(item.id, index)" />					{{ item.value }}</view></view><viewclass="title">已办事项</view><viewv-for="(item, index) in showList":key="item.id"><viewv-if="item.status === 'finished'"class="done"><checkboxv-on:click="doneHandle(item.id, index)"checked="true" /><viewclass="conent">						{{ item.value }}</view></view></view></view></view></template>
<script>export default {data() {return {showList: [],value'',status''			}		},methods: {handleClick() {this.showList.push({valuethis.value,status'todo'// 表示待办事项idnew Date().getTime()				})console.log(this.showList)this.value = ''			},doingHandle(id, index) {const item = this.showList.find((item) => item.id === id)				item.status = 'finished'			},doneHandle(id, index) {const item = this.showList.find((item) => item.id === id)				item.status = 'todo'			}		}	}</script>
<style>/* 顶部区域 */.top {width100%;height80rpx;display: flex;align-items: center;justify-content: space-between;padding15rpx 0 15rpx 0;border-bottom1px dashed lightgray;	}.top input {width500rpx;margin-left20rpx;	}.top .createButton {width100rpx;height60rpx;display: flex;align-items: center;justify-content: center;border1rpx solid gray;border-radius50rpx;margin-right20rpx;	}/* 底部区域 */.bottom {margin30rpx;	}.bottom .title {margin-top30rpx;font-weight: bold;	}.bottom .done,.bottom .doing {width100%;height70rpx;background-color#EDEDED;display: flex;align-items: center;justify-content: flex-start;margin-top20rpx;	}.conent {text-decoration: line-through;	}	checkbox {margin0 15rpx 0 15rpx;	}</style>

8.uni-app项目——“短视频”微信小程序

1.项目内容

2.项目分析

3.项目初始化

4.公共头部区域

4.1. 实现公共头部区域的页面结构

MyTitle.vue

<template>  <viewclass="my-title">    <!-- logo -->    <navigatorclass="logo">      <imageclass="logo-img"src="../../static/logo.png" />    </navigator>    <!-- 搜索框 -->    <viewclass="search-icon">      <imagesrc="../../static/search.jpg" />    </view>    <!-- 用户头像 -->    <viewclass="user-icon">      <imagesrc="../../static/user.jpg" />    </view>    <!-- 下载APP按钮 -->    <viewclass="down-app">      下载APP    </view>  </view></template>

4.2实现公共头部区域的页面样式

MyTitle.vue

<stylelang="scss">.my-title {  display: flex;  justify-content: center;  align-items: center;  padding10rpx;  background-color#fff;  height70rpx;  .logo {    flex7;    .logo-img {      width180rpx;      height60rpx;    }  }  .search-icon {    flex1;    display: flex;    justify-content: center;    align-items: center;    image {      width60rpx;      height44rpx;    }  }  .user-icon {    flex2;    display: flex;    justify-content: center;    align-items: center;    image {      width54rpx;      height60rpx;    }  }  .down-app {    flex3;    font-size30rpx;    display: flex;    justify-content: center;    align-items: center;    background-color#87CEEB;    color#fff;    border-radius10rpx;    padding10rpx;  }}</style>

4.3. 在页面中显示公共头部区域

运行看效果。

5.导航栏区域

5.1. 加载导航栏数据

index.vue

<script>  import config from '../../common/config.js'  export default {    data() {      return {        navList: [],        currentIndexNav0,      }    },    onLoad() {      this.getNavList()    },    methods: {      getNavList() {        uni.request({          url: config.url + '/navList',          successres => {            this.navList = res.data.data.navList            console.log(this.navList// 输出到控制台          }        })      },    }  }</script>

5.2. 实现导航栏区域的页面结构

index.vue

<template>  <view>    <MyTitle></MyTitle>    <viewclass="nav_wrap">      <scroll-viewclass="nav"scroll-x>        <view @click="activeNav($event,index)":class="['nav_item',index===currentIndexNav?'active':'']"          :data-index="index" v-for="(item,index) in navList" :key="item.id">          {{item.text}}        </view>      </scroll-view>    </view></template>

5.3. 实现导航栏区域的页面样式

index.vue

<stylelang="scss">  .nav {    white-space: nowrap;    padding5rpx 0;    .nav_item {      padding20rpx 45rpx;      font-size30rpx;      display: inline-block;    }    .active {      border-bottom5rpx solid #87CEEB;    }  }  /* #ifdef H5 */  .nav ::-webkit-scrollbar {    width0;    height0;    color: transparent;    display: none;  }  </style>

5.4. 实现导航栏的切换效果

index.vue

<script>  import config from '../../common/config.js'  export default {    data() {      return {        navList: [],        currentIndexNav0,        swiperList: [],        videosList: [],      }    },    onLoad() {      this.getNavList()      this.getSwiperList()      this.getVideosList()    },    methods: {      getNavList() {        uni.request({          url: config.url + '/navList',          successres => {            this.navList = res.data.data.navList            console.log(this.navList// 输出到控制台          }        })      },      activeNav(e) {        this.currentIndexNav = e.target.dataset.index      },    }  }</script>

6.轮播图区域

6.1. 加载轮播图数据

index.vue

<script>  import config from '../../common/config.js'  export default {    data() {      return {        navList: [],        currentIndexNav0,        swiperList: [],      }    },    onLoad() {      this.getNavList()      this.getSwiperList()    },    methods: {      getNavList() {        uni.request({          url: config.url + '/navList',          successres => {            this.navList = res.data.data.navList            console.log(this.navList// 输出到控制台          }        })      },      activeNav(e) {        this.currentIndexNav = e.target.dataset.index      },      getSwiperList() {        uni.request({          url: config.url + '/swiperList',          successres => {            this.swiperList = res.data.data.swiperList          }        })      },    }  }</script>

6.2. 实现轮播图区域的页面结构

index.vue

<template>  <view>    <MyTitle></MyTitle>    <viewclass="nav_wrap">      <scroll-viewclass="nav"scroll-x>        <view @click="activeNav($event,index)":class="['nav_item',index===currentIndexNav?'active':'']"          :data-index="index" v-for="(item,index) in navList" :key="item.id">          {{item.text}}        </view>      </scroll-view>    </view>    <viewclass="slides">      <swiperautoplayindicator-dotscircular>        <swiper-itemv-for="(item,index) in  swiperList":key="index">          <image:src="item.imgSrc"mode="widthFix"></image>        </swiper-item>      </swiper>    </view>  </view></template>

6.3. 实现轮播图区域的页面样式

index.vue

<stylelang="scss">  .nav {    white-space: nowrap;    padding5rpx 0;    .nav_item {      padding20rpx 45rpx;      font-size30rpx;      display: inline-block;    }    .active {      border-bottom5rpx solid #87CEEB;    }  }  /* #ifdef H5 */  .nav ::-webkit-scrollbar {    width0;    height0;    color: transparent;    display: none;  }  /* #endif */  .slides {    margin10rpx 0;    swiper {      height220rpx;    }    image {      width100%;      height100%;    }  }</style>

7.视频列表区域

7.1. 加载视频列表数据

index.vue

<script>  import config from '../../common/config.js'  export default {    data() {      return {        navList: [],        currentIndexNav0,        swiperList: [],        videosList: [],      }    },    onLoad() {      this.getNavList()      this.getSwiperList()      this.getVideosList()    },    methods: {      getNavList() {        uni.request({          url: config.url + '/navList',          successres => {            this.navList = res.data.data.navList            console.log(this.navList// 输出到控制台          }        })      },      activeNav(e) {        this.currentIndexNav = e.target.dataset.index      },      getSwiperList() {        uni.request({          url: config.url + '/swiperList',          successres => {            this.swiperList = res.data.data.swiperList          }        })      },      getVideosList() {        uni.request({          url: config.url + '/videosList',          successres => {            this.videosList = res.data.data.videosList          }        })      },    }  }</script>

7.2. 实现视频列表区域的页面结构

index.vue

<template>  <view>    <MyTitle></MyTitle>    <viewclass="nav_wrap">      <scroll-viewclass="nav"scroll-x>        <view @click="activeNav($event,index)":class="['nav_item',index===currentIndexNav?'active':'']"          :data-index="index" v-for="(item,index) in navList" :key="item.id">          {{item.text}}        </view>      </scroll-view>    </view>    <viewclass="slides">      <swiperautoplayindicator-dotscircular>        <swiper-itemv-for="(item,index) in  swiperList":key="index">          <image:src="item.imgSrc"mode="widthFix"></image>        </swiper-item>      </swiper>    </view>    <viewclass="video-wrap">      <!-- 视频列表中的每一项 -->      <viewclass="video-item" @click="goVideosDetail(item.id)"v-for="(item,index) in videosList":key="item.id">        <!-- 图片容器 -->        <viewclass="video-img">          <image:src="item.imgSrc"mode="widthFix"></image>          <!-- 播放量 -->          <viewclass="video-info">            <!-- 播放量 -->            <viewclass="play-count-wrap">              <!-- 图标 -->              <textclass="fa fa-play-circle-o"></text>              <!-- 数值 -->              <textclass="play-count">{{ item.playCount }}</text>            </view>            <!-- 评论量 -->            <viewclass="comment-count-row">              <!-- 图标 -->              <textclass="fa fa-commenting-o"></text>              <!-- 数值 -->              <textclass="comment-count">{{ item.commentCount }}</text>            </view>          </view>        </view>        <!-- 标题 -->        <viewclass="video-title">          {{ item.desc }}        </view>      </view>    </view>  </view></template>

7.3. 实现视频列表区域的页面样式

index.vue

<stylelang="scss">  .nav {    white-space: nowrap;    padding5rpx 0;    .nav_item {      padding20rpx 45rpx;      font-size30rpx;      display: inline-block;    }    .active {      border-bottom5rpx solid #87CEEB;    }  }  /* #ifdef H5 */  .nav ::-webkit-scrollbar {    width0;    height0;    color: transparent;    display: none;  }  /* #endif */  .slides {    margin10rpx 0;    swiper {      height220rpx;    }    image {      width100%;      height100%;    }  }  .video-wrap {    display: flex;    flex-wrap: wrap;    justify-content: space-between;    padding5rpx;  }  .video-item {    width48%;    margin-bottom20rpx;  }  .video-img {    position: relative;    image {      width100%;      border-radius15rpx;    }    .video-info {      position: absolute;      bottom8rpx;      left0;      width100%;      display: flex;      justify-content: space-around;      backgroundrgba(0000.3);    }    .video-info text {      margin-right5rpx;      font-size24rpx;      color#efefef;    }  }  .video-title {    font-size28rpx;    /* 将对象作为弹性伸缩盒子模型显示 */    display: -webkit-box;    /* 超出部分隐藏 */    overflow: hidden;    /* 显示的行数 */    -webkit-line-clamp: 2;    /* 从上到下垂直排列子元素 */    -webkit-box-orient: vertical;  }</style>

7.4. 实现跳转到视频详情页

index.vue

<script>  import config from '../../common/config.js'  export default {    data() {      return {        navList: [],        currentIndexNav0,        swiperList: [],        videosList: [],      }    },    onLoad() {      this.getNavList()      this.getSwiperList()      this.getVideosList()    },    methods: {      getNavList() {        uni.request({          url: config.url + '/navList',          successres => {            this.navList = res.data.data.navList            console.log(this.navList// 输出到控制台          }        })      },      activeNav(e) {        this.currentIndexNav = e.target.dataset.index      },      getSwiperList() {        uni.request({          url: config.url + '/swiperList',          successres => {            this.swiperList = res.data.data.swiperList          }        })      },      getVideosList() {        uni.request({          url: config.url + '/videosList',          successres => {            this.videosList = res.data.data.videosList          }        })      },      goVideosDetail(id) {        uni.navigateTo({          url'/pages/detail/detail?id=' + id        })      },    }  }</script>

8.视频详情页

8.1. 实现整体页面结构

detail.vue

<template>  <view>    <MyTitle></MyTitle>    <!-- 视频详情 -->    <viewclass="video-info"v-if="videoInfo">    </view>    <!-- 推荐视频 -->    <viewclass="other-list">    </view>    <!-- 评论列表 -->    <viewclass="comment-wrap">    </view>  </view></template>

8.2. 实现视频详情区域

detail.vue

<script>  import config from "../../common/config.js"  export default {    data() {      return {        // 视频详情        videoInfonull,      }    },    onLoad(options) {      let videoId = options.id      this.getCurrentVideo(videoId)    },    methods: {      // 页面加载时获取视频信息      getCurrentVideo(videoId) {        uni.request({          url: config.url + '/videoDetail?id=' + videoId,          successres => {console.log(res.data.data)            if (res.data.code === 0) {              this.videoInfo = res.data.data.videoInfo            }          }        })      },    }  }</script>

detail.vue

<template>  <view>    <MyTitle></MyTitle>    <!-- 视频详情 -->    <viewclass="video-info"v-if="videoInfo">      <!-- 视频 -->      <video:src="videoInfo.videoSrc"controlsclass="video"></video>      <!-- 视频标题 -->      <viewclass="video-title">        <text>{{ videoInfo.videoTitle }}</text>        <textclass="fa fa-angle-down"></text>      </view>      <!-- 视频详细信息  -->      <viewclass="video-detail">        <!-- 作者 -->        <textclass="author">{{ videoInfo.author }}</text>        <!-- 播放量 -->        <textclass="play-count">{{ videoInfo.playCount }}</text>        <!-- 评论量 -->        <textclass="comment-count">{{ videoInfo.commentCount }}弹幕</text>        <!-- 时间 -->        <textclass="date">时间:{{ videoInfo.date }}</text>      </view>    </view>    <!-- 推荐视频 -->    <viewclass="other-list">    </view>    <!-- 评论列表 -->    <viewclass="comment-wrap">    </view>  </view></template>

8.3. 实现推荐视频区域

detail.vue

<stylelang="scss">  .video-info {    margin-top10rpx;    .video {      width100%;    }    .video-title {      display: flex;      justify-content: space-between;      font-size35rpx;    }    .video-detail {      margin-top5rpx;      font-size28rpx;      text {        margin-left15rpx;      }      .author {        color#000;      }    }  }</style>

detail.vue

<script>  import config from "../../common/config.js"  export default {    data() {      return {        // 视频详情        videoInfonull,        othersList: [],      }    },    onLoad(options) {      let videoId = options.id      this.getCurrentVideo(videoId)      this.getOthersList()    },    methods: {      // 页面加载时获取视频信息      getCurrentVideo(videoId) {        uni.request({          url: config.url + '/videoDetail?id=' + videoId,          successres => {console.log(res.data.data)            if (res.data.code === 0) {              this.videoInfo = res.data.data.videoInfo            }          }        })      },      getOthersList() {        uni.request({          url: config.url + '/othersList',          successres => {            if (res.data.code === 0) {              this.othersList = res.data.data.othersList            }          }        })      },    }  }</script>

detail.vue

  <!-- 推荐视频 -->    <viewclass="other-list">      <viewv-for="item in othersList":key="item.id"class="item_other">        <!-- 图片容器 -->        <viewclass="other-img-wrap">          <image:src="item.imgSrc"mode="widthFix"></image>        </view>        <!-- 视频详情 -->        <viewclass="other-info">          <!-- 标题 -->          <viewclass="other-title">{{ item.title }}</view>          <!-- 播放量 -->          <viewclass="other-detail">            <!-- 播放量 -->            <textclass="play-count"> {{ item.playMsg }}次观看 </text>            <!-- 评论 -->            <textclass="comment-count">{{ item.commentCount }}条评论</text>          </view>        </view>      </view>    </view>

detail.vue

<stylelang="scss">    .other-list {    margin-top10rpx;    .item_other {      display: flex;      justify-content: space-between;      margin-bottom20rpx;      .other-img-wrap {        width38%;        display: flex;        justify-content: center;        align-items: center;        .other-img-wrap image {          width90%;          border-radius15rpx;        }      }      .other-info {        width60%;        display: flex;        flex-direction: column;        justify-content: space-around;        .other-title {          font-size30rpx;          color#e06f93;        }        .other-detail {          font-size26rpx;          color#666;        }      }    }  }</style>

8.4. 实现评论列表区域

detail.vue

<script>  import config from "../../common/config.js"  export default {    data() {      return {        // 视频详情        videoInfonull,        othersList: [],        commentData: [],      }    },    onLoad(options) {      let videoId = options.id      this.getCurrentVideo(videoId)      this.getOthersList()      this.getCommentList(videoId)    },    methods: {      // 页面加载时获取视频信息      getCurrentVideo(videoId) {        uni.request({          url: config.url + '/videoDetail?id=' + videoId,          successres => {console.log(res.data.data)            if (res.data.code === 0) {              this.videoInfo = res.data.data.videoInfo            }          }        })      },      getOthersList() {        uni.request({          url: config.url + '/othersList',          successres => {            if (res.data.code === 0) {              this.othersList = res.data.data.othersList            }          }        })      },      getCommentList(videoId) {        uni.request({          url: config.url + '/commentsList?id=' + videoId,          successres => {            if (res.data.code === 0) {              this.commentData = res.data.data.commentData;            }          }        })      },    }  }</script>

detail.vue

<!-- 评论列表 -->    <viewclass="comment-wrap">      <viewclass="comment-title">        评论 ({{ commentData.commentTotalCount }} )      </view>      <viewclass="comment-list">        <viewclass="comment-item"v-for="(item, index) in commentData.commentList":key="index">          <!-- 左侧用户 -->          <viewclass="comment_user">            <image:src="item.userIconSrc"mode="widthFix"class="comment_user_image" />          </view>          <!-- 右侧评论 -->          <viewclass="comment-info">            <viewclass="comment-detail">              <textclass="author">{{ item.username }}</text>              <textclass="date">{{ item.commentDate }}</text>            </view>            <viewclass="comment-content">              {{ item.commentInfo }}            </view>          </view>        </view>      </view>    </view>

detail.vue

<stylelang="scss">.comment-wrap {margin-top10rpx;.comment-title {padding10rpx;font-size28rpx;		}.comment-list {.comment-item {margin-bottom10rpx;padding10rpx;display: flex;justify-content: space-between;border-bottom1px solid #666;			}.comment_user {flex1;display: flex;justify-content: center;align-items: center;.comment_user_image {width60%;border-radius50%;				}			}.comment-info {flex5;display: flex;flex-direction: column;justify-content: space-around;.comment-detail {display: flex;justify-content: space-between;.comment-detail .author {font-size28rpx;color#000;					}.comment-detail .date {color#666;font-size24rpx;					}				}			}.comment-content {font-size28rpx;color#000;			}		}	}</style>
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-10 01:22:23 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/597922.html
  2. 运行时间 : 0.138527s [ 吞吐率:7.22req/s ] 内存消耗:4,983.45kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a7776911a901d14913448549895455ff
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000582s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000757s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000367s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000312s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000537s ]
  6. SELECT * FROM `set` [ RunTime:0.000195s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000622s ]
  8. SELECT * FROM `article` WHERE `id` = 597922 LIMIT 1 [ RunTime:0.000608s ]
  9. UPDATE `article` SET `lasttime` = 1778347343 WHERE `id` = 597922 [ RunTime:0.006876s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000407s ]
  11. SELECT * FROM `article` WHERE `id` < 597922 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000585s ]
  12. SELECT * FROM `article` WHERE `id` > 597922 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000418s ]
  13. SELECT * FROM `article` WHERE `id` < 597922 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001385s ]
  14. SELECT * FROM `article` WHERE `id` < 597922 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004615s ]
  15. SELECT * FROM `article` WHERE `id` < 597922 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018114s ]
0.142514s