当前位置:首页>python>python: Facade Pattern

python: Facade Pattern

  • 2026-03-22 08:55:22
python: Facade Pattern

你去珠宝店定制钻戒,不需要自己去对接钻石采购、戒托制作、珠宝鉴定、证书办理等多个部门(子系统),只需要告诉珠宝顾问(门面)你的需求,顾问会帮你协调所有环节,你只需要最终取货即可。

我们模拟珠宝店定制钻戒的场景,涉及 4 个子系统:

钻石采购子系统:根据参数(克拉、净度)采购钻石

戒托制作子系统:根据材质(铂金 / 18K 金)制作戒托

珠宝镶嵌子系统:将钻石镶嵌到戒托上

证书办理子系统:为成品钻戒办理鉴定证书

# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:04# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : Diamond.py# ---------------------- 1. 定义珠宝实体类(承载属性) ----------------------class Diamond:    """    钻石实体类:封装钻石核心属性    """    def __init__(self, carat: float, clarity: str):        """        :param carat:        :param clarity:        """        self.carat = carat  # 克拉数        self.clarity = clarity  # 净度(VS1/VVS1等)    def __str__(self):        """        :return:        """        return f"钻石({self.carat}克拉,净度{self.clarity})"# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:05# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : RingSetting.py# ---------------------- 1. 定义珠宝实体类(承载属性) ----------------------class RingSetting:    """    戒托实体类:封装戒托核心属性    """    def __init__(self, material: str):        """        :param material:        """        self.material = material  # 材质(铂金/18K金)    def __str__(self):        """        :return:        """        return f"戒托(材质:{self.material})"# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:07# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : DiamondRing.pyfrom FacadePattern.Diamond import Diamondfrom FacadePattern.RingSetting import RingSetting# ---------------------- 1. 定义珠宝实体类(承载属性) ----------------------class DiamondRing:    """    成品钻戒实体类:聚合钻石+戒托,封装成品属性    """    def __init__(self, ring_id: str, diamond: Diamond, ring_setting: RingSetting, cert_id: str):        """        :param ring_id:        :param diamond:        :param ring_setting:        :param cert_id:        """        self.ring_id = ring_id  # 钻戒编号        self.diamond = diamond  # 关联钻石实体        self.ring_setting = ring_setting  # 关联戒托实体        self.cert_id = cert_id  # 鉴定证书编号    def __str__(self):        """        :return:        """        return (            f"\n【定制钻戒成品信息】\n"            f"钻戒编号:{self.ring_id}\n"            f"配置:{self.diamond} + {self.ring_setting}\n"            f"鉴定证书编号:{self.cert_id}"        )
# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:10# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : DiamondPurchaseSystem.pyfrom FacadePattern.Diamond import Diamond# ---------------------- 2. 定义4个核心子系统 ----------------------class DiamondPurchaseSystem:    """    钻石采购子系统:按克拉、净度采购钻石,返回钻石实体    """    def purchase(self, carat: float, clarity: str) -> Diamond:        """        模拟采购逻辑(可扩展:供应商对接、质检等)        :param carat:        :param clarity:        :return:        """        print(f"✅ 钻石采购完成:{carat}克拉,净度{clarity}")        return Diamond(carat, clarity)# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:11# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : RingSettingMakeSystem.pyfrom FacadePattern.RingSetting import RingSetting# ---------------------- 2. 定义4个核心子系统 ----------------------class RingSettingMakeSystem:    """    戒托制作子系统:按材质制作戒托,返回戒托实体    """    def make(self, material: str) -> RingSetting:        """        模拟制作逻辑(可扩展:尺寸定制、金价计算等)        :param material:        :return:        """        print(f"✅ 戒托制作完成:材质{material}")        return RingSetting(material)# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:13# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : DiamondInlaySystem.pyfrom FacadePattern.Diamond import Diamondfrom FacadePattern.RingSetting import RingSetting# ---------------------- 2. 定义4个核心子系统 ----------------------class DiamondInlaySystem:    """    珠宝镶嵌子系统:将钻石镶嵌到戒托    """    def inlay(self, diamond: Diamond, ring_setting: RingSetting) -> None:        """        模拟镶嵌工艺(可扩展:镶嵌方式、质检等)        :param diamond:        :param ring_setting:        :return:        """        print(f"✅ 镶嵌完成:{diamond} → {ring_setting}")# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:14# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : CertificateSystem.py# ---------------------- 2. 定义4个核心子系统 ----------------------class CertificateSystem:    """    证书办理子系统:为成品钻戒办理鉴定证书,返回证书编号    """    def apply(self, ring_id: str) -> str:        """        模拟证书生成逻辑(可扩展:对接鉴定机构、信息录入等)        :param ring_id:        :return:        """        hash_str = str(hash(ring_id))  # 新增:将整数hash值转为字符串        cert_id = f"CERT-{ring_id}-{hash_str[:6]}"  # 对字符串切片        #cert_id = f"CERT-{ring_id}-{hash(ring_id)[:6]}"  # 简易证书编号规则        print(f"✅ 证书办理完成:编号{cert_id}")        return cert_id
# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:15# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : JewelryAdvisorFacade.pyfrom FacadePattern.DiamondInlaySystem import DiamondInlaySystemfrom FacadePattern.CertificateSystem import CertificateSystemfrom FacadePattern.RingSettingMakeSystem import RingSettingMakeSystemfrom FacadePattern.DiamondPurchaseSystem import DiamondPurchaseSystemfrom FacadePattern.DiamondRing import DiamondRing# ---------------------- 3. 定义门面类(珠宝顾问) ----------------------class JewelryAdvisorFacade:    """    珠宝顾问(门面类):封装4个子系统,提供统一定制接口    """    def __init__(self):        """        初始化所有子系统(门面类持有子系统引用)        """        self.diamond_sys = DiamondPurchaseSystem()        self.ring_setting_sys = RingSettingMakeSystem()        self.inlay_sys = DiamondInlaySystem()        self.cert_sys = CertificateSystem()    def customize_diamond_ring(self, ring_id: str, carat: float, clarity: str, material: str) -> DiamondRing:        """        定制钻戒的统一接口(客户端仅需调用此方法)        :param ring_id: 钻戒唯一编号        :param carat: 钻石克拉数        :param clarity: 钻石净度        :param material: 戒托材质        :return: 成品钻戒实体        """        print("\n===== 开始定制钻戒 =====")        # 1. 调用钻石采购子系统        diamond = self.diamond_sys.purchase(carat, clarity)        # 2. 调用戒托制作子系统        ring_setting = self.ring_setting_sys.make(material)        # 3. 调用珠宝镶嵌子系统        self.inlay_sys.inlay(diamond, ring_setting)        # 4. 调用证书办理子系统        cert_id = self.cert_sys.apply(ring_id)        # 组装成品钻戒实体并返回        finished_ring = DiamondRing(ring_id, diamond, ring_setting, cert_id)        print("===== 钻戒定制流程结束 =====\n")        return finished_ring
# encoding: utf-8# 版权所有  2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:外观模式 Facade Pattern# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2024.3.6 python 3.11# os        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j# Datetime  : 2026/3/7 13:17# User      :  geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : FacadeBll.pyfrom FacadePattern.JewelryAdvisorFacade import JewelryAdvisorFacade# ---------------------- 4. 客户端调用(顾客) ----------------------class FacadeBll(object):    """    外观模式 Facade Pattern    """    def demo(self):        """        外观模式 Facade Pattern        客户端调用(顾客)        :return:        """        # 顾客仅需接触门面类(珠宝顾问),无需关注4个子系统        advisor = JewelryAdvisorFacade()        # 调用统一接口,传入核心参数,完成定制        my_diamond_ring = advisor.customize_diamond_ring(            ring_id="ZR20260307001",            carat=1.5,            clarity="VVS1",            material="铂金"        )        # 打印成品钻戒的完整属性        print(my_diamond_ring)

调用:

# encoding: utf-8# 版权所有 2026 ©涂聚文有限公司™ ®# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述: 设计模式 Design Patterns# Author    : geovindu,Geovin Du 涂聚文.# IDE       : PyCharm 2023.1 python 3.11# OS        : windows 10# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  oracle 21c Neo4j# Datetime  : 2026/2/18 20:58# User      : geovindu# Product   : PyCharm# Project   : pydesginpattern# File      : main.py# explain   : 学习import bll.CheckPatternsdef select_design_pattern() -> tuple[int, bll.CheckPatterns.DesignPattern | None]:    """    返回 (序列号, 选中的枚举对象),退出则返回 (0, None)    :return:    """    print("\n=== 方式3:用户选择展示 ===")    print("可选设计模式(输入0或q退出):")    for idx, pattern in enumerate(bll.CheckPatterns.DesignPattern, 1):        print(f"{idx}{pattern._name_to_cn(pattern.name)}{pattern.name})")    print("0. 退出")    while True:        user_input = input("\n请输入序号选择要展示的设计模式(输入0/q退出):").strip()        if user_input in ("0""q""Q"):            print("👋 退出选择流程")            return (0None)        try:            choice = int(user_input)            if 1 <= choice <= len(bll.CheckPatterns.DesignPattern):                selected_pattern = list(bll.CheckPatterns.DesignPattern)[choice - 1]                print(f"✅ 你选择了序号:{choice}(对应{selected_pattern._name_to_cn(selected_pattern.name)})")                return (choice, selected_pattern)  # 返回(序列号, 枚举对象)            else:                print(f"❌ 输入无效!请输入1-{len(bll.CheckPatterns.DesignPattern)}之间的数字,或0/q退出")        except ValueError:            print("❌ 输入无效!请输入数字序号,或0/q退出")def ask_continue() -> bool:    """    询问用户是否继续选择,返回True(继续)/False(退出)    """    while True:        user_choice = input("\n是否继续选择其他设计模式?(y/n):").strip().lower()        if user_choice == "y":            return True        elif user_choice == "n":            print("👋 感谢使用,程序结束!")            return False        else:            print("❌ 输入无效!请输入 y(继续)或 n(退出)")if __name__ == '__main__':    # 方式1:用户输入选择展示(交互版)    '''    print("\n=== 方式1:用户选择展示 ===")    print("可选设计模式:")    for idx, pattern in enumerate( bll.CheckPatterns.DesignPattern, 1):        print(f"{idx}. {pattern._name_to_cn(pattern.name)}({pattern.name})")    try:        choice = int(input("\n请输入序号选择要展示的设计模式:"))        selected_pattern = list( bll.CheckPatterns.DesignPattern)[choice - 1]        selected_pattern.show_example()    except (ValueError, IndexError):        print("❌ 输入无效,请输入正确的序号!")    '''    # 2    print("🎉 设计模式示例展示程序")    while True:        # 1. 选择设计模式        selected_num, selected_pattern = select_design_pattern()        # 2. 判断是否直接退出(输入0/q)        if selected_num == 0:            print("👋 程序结束!")            break        # 3. 执行选中的示例        selected_pattern.show_example()        print(f"\n📌 本次选择的序列号是:{selected_num}")        # 4. 询问是否继续        if not ask_continue():            break  # 用户选择不继续,终止循环    print('hi,welcome geovindu.')

输出:

最新文章

随机文章

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