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”文件是主题的清单文件,它定义了有关主题的各种细节,例如其版本、名称和描述。