# 向后兼容性说明

我们在开发产品时，尽可能保持向后兼容（BC）。

只有主要版本（如 4.0、5.0 等）才允许破坏向后兼容性。 次要版本（如 4.2、4.3 等）可以引入新功能，但必须在不破坏现有 API 的前提下进行。

不过，目前代码尚未完全成熟，错误修复可能会在次要版本，甚至补丁版本（如 4.2.5）中破坏兼容性。在这种情况下，所有破坏性变更都会记录在 变更记录 中。

## 哪些情况不属于破坏性变更

- 已弃用（deprecated）的项目不受向后兼容（BC）承诺的约束。它们可能会在下一个 次要版本 或之后的版本中被移除。例如，如果某个项目自 4.3.x 起被弃用，那么它可能会在 4.5.0 中被移除。

- 定义在 system/Language/en/ 中的系统消息仅供框架内部使用，不受向后兼容（BC）承诺的约束。如果开发者依赖语言字符串的输出，应当基于函数调用（`lang('...')`）进行判断，而不是依赖具体的文本内容。

- 命名参数 不受向后兼容（BC）承诺的约束。为了改进代码库，我们可能会在必要时重命名方法或函数的参数名称。