FOSSBilling 文件结构

FOSSBilling 的文件结构对新开发人员来说可能不熟悉,因为它不是基于现代框架的。本指南旨在帮助开发人员了解 FOSSBilling 的文件结构,以便做出贡献。

主要源代码

FOSSBilling 的主要源代码位于项目存储库中的“src”目录中。该目录包含该项目的大部分代码,但测试和其他一些文件除外。本指南将主要关注“src”目录中的源代码。

Data

文件路径: /src/data

源代码中的“ data ”文件夹大多是空的,但它是实时安装 FOSSBilling 的重要目录。这是存储缓存、日志和上传的地方。

Install

文件路径: /src/install

 “install” 目录包含安装 FOSSBilling 所需的文件,例如安装向导和默认 SQL 内容。

Library

文件路径: /src/library

 “library” 文件夹是 FOSSBilling 应用程序的通用库。它包含几个子文件夹,其中包含应用程序使用的各种资源和代码。在下一节中,我们将描述这些子文件夹的内容。

API

文件路径: /src/library/Api

 “API” 文件夹包含了 FOSSBilling API 的一些核心文件,包括抽象类、处理程序和 JavaScript API 包装器。JavaScript API 包装器位于src/library/API.js,是此目录中最常用的文件。包装纸的文档可以在这里找到

Box

文件路径: /src/library/Box

 “Box” 目录以BoxBilling 命名,并保存来自BoxBilling 代码的类。其中许多类比较老,正在被清理和重构为新的 FOSSBilling 类。此目录中找到的一些类类型的示例包括工具类、翻译、异常处理、自定义Twig 扩展等。

FOSSBilling

文件路径: /src/library/FOSSBilling

自从我们从 BoxBilling 分叉以来,“FOSSBilling”目录包含全新或重写类的类。目前,这些大多特定于 FOSSBilling 核心,不提供许多模块开发人员需要交互的功能。

Model

文件路径: /src/library/Model

 “Model” 目录包含 FOSSBilling 中使用的所有模型。您不太可能需要对这些文件进行任何更改,但它们可以作为应用程序中实现的模型的有用参考。

Payment

文件路径: /src/library/Payment

“Payment” 目录很重要,包含用于支付适配器和发票处理的库文件。对于大多数开发人员来说,子文件夹src/library/Payment/Adapter将特别感兴趣,因为它包含FOSSBilling 的支付适配器,它扩展了父目录中定义的类。

Registrar

文件路径: /src/library/Registrar

“Registrar” 目录保存着FOSSBilling 使用的域名注册商适配器的类和文件。实际的适配器位于子文件夹src/library/Registrar/Adapter中,并从父目录中扩展类。

Server

文件路径: /src/library/Server

 “Registrar” 目录保存FOSSBilling 使用的服务器管理器的类和文件。实际的服务器管理器位于子文件夹src/library/Server/Manager中,并从父目录扩展类。

Locale

文件路径: /src/locale

 “locale” 文件夹包含FOSSBilling 的所有翻译。这些翻译存储在一个单独的存储库中,并作为子模块包含在主存储库中。当生成预览和发布存档时,子模块将从“locale”存储库更新到最新版本,包括以“.mo”格式编译的任何新的或更新的翻译。

Modules

文件路径: /src/modules

 “modules” 目录包含了 FOSSBilling 的所有模块。模块在应用程序的功能方面提供了灵活性和可扩展性。没有两个模块是完全相同的,但是每个模块可能有一组标准的文件夹。

  • Api – “Api” 文件夹定义了每个 FOSSBilling 模块的 API 功能。可能有针对不同类型用户的单独文件,例如“Admin.php”、“Client.php”和“Guest.php”。这些文件定义了可以根据用户的权限级别进行的API调用。
  • Controller –  “Controller” 文件夹定义了模块的控制器。这些控制器类似于一些框架可能所说的“路由”。可能有针对不同类型用户的单独文件,例如“Admin.php”、“Client.php”和“Guest.php”。这些文件中的每一个都对应于特定类型的用户。
  • html_admin – “html_admin” 文件夹包含管理面板中使用的模块的Twig模板。
  • html_client –  “html_client” 文件夹包含客户端仪表板中使用的模块的Twig模板
  • html_email –  “html_email” 文件夹包含与模块相关的支持twig的电子邮件模板。
  • manifest.json – “manifest.json” 文件是模块的清单文件,它定义了有关模块的各种细节,例如其版本、名称和描述。
  • Service.php – “Service.php”文件定义了模块的主要功能和类。这些函数不会通过API公开,通常用于定义API调用用于执行API函数的底层函数。

Themes

文件路径: /src/themes

 “Themes” 文件夹包含安装在 FOSSBilling 内部的每个主题的目录。主题应具有以下文件结构:

  • assets – 此目录应包含JS、CSS和图像等主题资产。
  • config – 如果主题有配置选项,那么此文件夹将有一个 settings.html 文件来定义该主题的可配置选项。
  • html – 此目录包含用作主题HTML 的 twig 模板。如果需要,主题可以通过将 twig 模板命名为与模块使用的模板相同的名称来定义模块的自定义页面,然后将加载该模板,而不是模块的模板。
  • html_custom – 一个可选目录,最终用户可以用它来提供模板,这些模板将优先于所有其他模板。主题不应该将其模板放在这里,因为此目录的目的是使自定义主题更容易。
  • manifest.json – “Manifest.json”文件是主题的清单文件,它定义了有关主题的各种细节,例如其版本、名称和描述。