当前位置:首页>鸿蒙APP>鸿蒙元服务从开发到上架 —— “每日格言”技术分享

鸿蒙元服务从开发到上架 —— “每日格言”技术分享

  • 2026-01-30 11:10:59
鸿蒙元服务从开发到上架 —— “每日格言”技术分享

“每日格言”概述

“每日格言”是一个展示格言的元服务。每天格言不重复,感受文字带来的力量!

1. 项目详情及使用方式

通过滑动界面,可以刷新查看最新的格言;可以根据关键字来搜索格言;可以朗读格言的内容。每天格言不重复,感受文字带来的力量!

2. 项目的亮点

程序简洁容易操作;功能内聚;无需操作手册即可上手。

3. 功能界面展示

以下是“每日格言”元服务核心功能界面展示。

首页:各个功能的入口;可以根据关键字进行搜索。

详情:查看格言详情页;可以朗读格言。

“每日格言”核心技术分

“每日格言”使用最新 HarmonyOS 6 开发。项目中涉及的关键技术:

  1. Navigation 实现页面的切换;
  2. Grid 和 Stack 实现首页布局;
  3. LazyForEach 实现数据懒加载;
  4. @Builder 装饰器自定义格言详情界面;
  5. 基于 HarmonyOS 的场景化语音服务等AI能力实现本文朗读。

1. Navigation 实现页面的切换

在主页 Index.ets 文件中,Navigation 组件用于实现页面的切换。

// 创建一个导航控制器对象并传入NavigationpageInfosNavPathStack = new NavPathStack();build() {  Navigation(this.pageInfos) {    // ...  }  .mode(NavigationMode.Stack)  .hideTitleBar(true)}

2. Grid 和 Stack 实现首页布局

Grid 和 Stack 实现首页布局。

Stack() {  Image($r('app.media.bg'))    .objectFit(ImageFit.Fill)    .width('100%')    .height('100%')  Scroll() {    Column() {      Row() {        Search({ value: this.searchContent, placeholder'关键字搜索...', controller: this.controller })          .searchIcon(new SymbolGlyphModifier($r('sys.symbol.magnifyingglass')).fontColor([$r('app.color.main_background')]))          .cancelButton({            style: CancelButtonStyle.CONSTANT,            iconnew SymbolGlyphModifier($r('sys.symbol.xmark')).fontColor([Color.Green])          })          .searchButton('搜索')          .width('70%')          .height(40)          .backgroundColor('#F5F5F5')          .placeholderColor(Color.Grey)          .placeholderFont({ size14, weight400 })          .textFont({ size14, weight400 })          .margin(20)          .onSubmit((valuestring) => {            this.searchContent = value;            this.doSearch(this.searchContent)          })      }.width('100%')      .justifyContent(FlexAlign.Start)      Grid(this.scroller, this.layoutOptions) {        // ...      }      .columnsGap(8)      .rowsGap(8)      .columnsTemplate('1fr')      .width('100%')      .height('100%')      .padding({ left10, right10, bottom40 })    }    .width('100%')    .height('100%')    .margin({ bottom10 })  }.width('100%')  .scrollBar(BarState.Off)}

其中,Stack 的作用是将子组件堆叠起来,并设置堆叠顺序。在最底层,使用 Image 组件将背景图片填充到整个屏幕。 Grid 组件用于实现网格布局,并设置列数和列间距。

3. LazyForEach 实现数据懒加载

LazyForEach 组件用于实现数据懒加载。

Grid(this.scrollerthis.layoutOptions) {  LazyForEach(this.dataSource(item: Poet) => {    GridItem() {      // 根据数据渲染格言卡片      Text(`${item.title}${item.author})`)        .width('100%')        .height(28)        .margin(10)        .fontColor($r('sys.color.font_primary'))        .fontSize(24)        .maxLines(1)        .textOverflow({ overflowTextOverflow.Ellipsis })        .onClick(e => {          // 切换到Detail页面          // 将name指定的NaviDestination页面信息入栈,传递的参数为item          this.pageInfos.pushPathByName('PageDetail', item);          console.log('切换到Detail页面');        })    }  }, (item: Poet) => item.id + ''  )}

懒加载组件 LazyForEach 接收两个参数:数据源和数据渲染函数。数据源是一个数组,数据渲染函数是一个函数,用于根据数据源中的数据渲染组件。

懒加载组件会根据数据源中的数据,自动创建对应的组件。这里的组件比较简单,用 Text 组件来渲染格言卡片。

格言卡片主要是显示格言的标题和作者。

点击格言卡片,会跳转到 PageDetail 页面,并显示该格言的详情。

4. @Builder 装饰器自定义格言详情界面

@Builder 装饰器用于自定义格言详情界面。

@Builderfunction TextLineBuilder(poetPoetcolorstringindexnumber) {  if (poet) {    Stack() {      Image($r('app.media.type_' + index))        .objectFit(ImageFit.Fill)        .width('100%')        .height('100%')      Column(){        Text(poet.title)          .fontSize(24)          .fontWeight(FontWeight.Bold)          .fontColor(color)          .backgroundColor(Color.White)        Text(poet.author)          .fontSize(20)          .fontWeight(FontWeight.Medium)          .fontColor(color)          .backgroundColor(Color.White)        ForEach(poet.paragraphs(paragraphstringindexnumber) => {          Text(paragraph)            .fontSize(22)            .fontWeight(FontWeight.Lighter)            .fontColor(color)            .backgroundColor(Color.White)        })      }.width('100%')      .height('100%')      .justifyContent(FlexAlign.Center)    }    .width('100%')    .height('100%')  }}

上述函数同样是使用了 Stack 布局:在最底层,使用 Image 组件将背景图片填充到整个屏幕;上层是将格言的标题、作者和内容分别放在三个 Text 组件中。

5. 场景化语音服务实现本文朗读

借助 HarmonyOS 的场景化语音服务等 AI 能力,可以轻松实现本文的朗读功能。

Button('朗读').onClick(() => {  // 初始化文章列表  this.readInfoList = [    {      id: this.poet.id + '',      title: {        text: this.poet.title,        isClickable: true      },      author: {        text: this.poet.author,        isClickable: true      },      bodyInfo: this.poet.paragraphs.join('\n')    }  ]  this.selectedReadInfo = this.readInfoList[0]  // 朗读控件执行朗读  TextReader.start(this.readInfoList, this.selectedReadInfo?.id)    .catch((error: BusinessError) => {      console.error(`start failed, code: ${error.code}, message: ${error.message}`)    })}).margin(10)

从开发到上架经验总结

本节以“每日格言”应用上架为例,记录完整的鸿蒙 HamonyOS 应用上架手动签名与发布流程。

(一)上架手动签名

HarmonyOS 应用/元服务通过数字证书( .cer 文件)和 Profile 文件( .p7b 文件)来保证应用/元服务的完整性。

在申请数字证书和 Profile 文件前,首先需要通过 DevEco Studio 来生成密钥(存储在格式为 .p12 的密钥库文件中)和证书请求文件( .csr 文件)。

然后,申请调试数字证书和调试 Profile 文件。最后,将密钥( .p12 )文件、数字证书( .cer )文件和 Profile(.p7b)文件配置到工程中。

基本概念

  1. 密钥:格式为 .p12,包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,公钥和私钥对用于数字签名和验证。
  2. 证书请求文件:格式为 .csr,全称为 Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向 AppGallery Connect 申请数字证书。
  3. 数字证书:格式为 .cer,由华为 AppGallery Connect 颁发。
  4. Profile 文件:格式为 .p7b,包含 HarmonyOS 应用/元服务的包名、数字证书信息、描述应用/元服务允许申请的证书权限列表,以及允许应用/元服务调试的设备列表(如果应用/元服务类型为 Release 类型,则设备列表为空)等内容,每个应用/元服务包中均必须包含一个 Profile 文件。

1. 生成密钥文件

在 DevEco Studio 中生成密钥文件。

设置存储路径:比如本例 D:\dev\harmonyos\keystore\birlower_20250916.p12

输入密码

设置别名:比如本例 birlower_20250916

2. 生成证书请求文件

基于上一步的密钥文件,生成证书请求文件。

设置存储路径:比如本例 D:\dev\harmonyos\keystore\birlower_20250916.csr

3. 新增数字证书

登录 AppGallery Connect,点击左侧导航栏的“数字证书”,点击“新增数字证书”。

填写证书信息,并上传上一步生成的证书请求文件。

证书名称:比如本例 birlower_20250916

证书类型:发布证书

下载数字证书文件到指定目录待用。

4. 添加 Profile

点击“ Profile ”,添加 Profile。

Profile 名称:birlower_20250916

类型:发布

选择证书:选择上一步新增的数字证书

下载Profile文件到指定目录待用。

5. 手动配置签名信息

在 DevEco Studio 中配置密钥( .p12 )文件、申请的调试证书( .cer )文件和调试 Profile( .p7b )文件。

在 File > Project Structure > Project > Signing Configs 窗口中,取消勾选“ Automatically generate signature ”,然后配置工程的签名信息。

  • Store file:选择第 1 步生成的密钥库文件,文件后缀为 .p12,该文件为生成密钥和证书请求文件中生成的 .p12 文件。

  • Store password:输入第 1 步的密钥库密码,该密码与生成密钥和证书请求文件中填写的密钥库密码保持一致。

  • Key alias:输入第 1 步的密钥的别名信息,与生成密钥和证书请求文件中填写的别名保持一致。

  • Key password:输入第 1 步的密钥的密码,与生成密钥和证书请求文件中填写的 Store Password 保持一致。

  • Sign alg:签名算法,固定为 SHA256withECDSA。

  • Profile file:选择第 4 步生成的申请调试证书和调试 Profile 文件中生成的 Profile 文件,文件后缀为 .p7b。

  • Certpath file:选择第 3 步生成的申请调试证书和调试 Profile 文件中生成的数字证书文件,文件后缀为 .cer。

(二)构建软件包

打包 APP 时,DevEco Studio 会将工程目录下的所有 HAP/HSP 模块打包到 APP 中,因此,如果工程目录中存在不需要打包到 APP 的 HAP/HSP 模块,请手动删除后再进行编译构建生成 APP。

单击 Build > Build Hap(s)/APP(s) > Build APP(s),等待编译构建完成已签名的应用包。

当未指定构建模式时,构建 APP 包,默认 Release 模式;构建 HAP/HSP/HAR 包,默认 Debug 模式。即 Build APP(s) 时,默认构建的 APP 包为 Release 类型,符合上架要求,开发者无需进行另外设置。

编译构建完成后,可以在工程目录 build > outputs > default 下,获取带签名的应用包,例如“ DailyQuotesAtomicService-default-signed.app ”。

(三)上传软件包

AGC 软件包管理,选择测试和正式上架,上述上一步的软件包“ DailyQuotesAtomicService-default-signed.app ”。

(四)分发

AGC 版本信息,软件版本选择上一步的软件版本。

正确填写应用多语言信息,有助于增加应用在应用市场曝光,输入的文字会以文本方式展示,不支持 html 标签。

设置下隐私声明,建议是使用隐私声明托管。

以上就是我元服务从开发到上架的详细过程,希望对大家有所帮助。

如果大家对鸿蒙开发感兴趣,也参与到当中来,期待与你相遇。

最新文章

随机文章

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