确保您可以轻松顺利地升级您的应用程序,这对我们是很重要的。这就是为什么我们只在主 要版本里程碑才会打破兼容性。你可能熟悉 语义版本控制 ,这 就是我们在所有的 CakePHP 项目中使用的通用准则。总之,语义版本控制意味着只有主要版 本(比如2.0,3.0,4.0)可以打破向后兼容性。次要版本(比如2.1,3.1,3.2)可能会引入新 的功能,但不能破坏兼容性。错误修复版本(比如2.1.2,3.0.1)不增加新的功能,但仅修复 漏洞或改善性能。
注解
CakePHP 从2.0.0开始遵循语义版本控制。这些规则不适用于1.x。
为了澄清在每个版本层次可以预期到哪些变化,我们为使用 CakePHP 的开发人员以及开发 CakePHP 的开发人员准备了更详细的信息,以便于建立预期在次要版本中能做什么。主要版 本根据需要可以有任意多个打破兼容性的变化。
对每个主要和次要版本,CakePHP 开发团队会提供一份升级指南。这些指南说明每一个版本 中的新功能及任何打破兼容性的变化,可以在 cookbook 的 Appendices 一节中看 到。
如果你使用 CakePHP 来构建应用程序,下面的指南说明了你可以预期的稳定性。
除了主要版本,CakePHP 提供的接口的任何现有的方法 不 会改变。可能会增加新的方 法,但不会改变任何现有的方法。
CakePHP 提供的类可以实例化,并且它们的公共方法和属性,可以被应用代码使用,除了主 要版本,(其他的版本)可以保证向后兼容性。
注解
一些 CakePHP 的类标有 @internal
API 文档标签(API doc tag)。这些类
不 稳定,不能保证向后兼容性。
在次要版本中,类可以添加新方法,已有的方法可以添加新的参数。任何新参数必须有缺省 值,但如果你用不同的签名重载方法,你可能会遇到致命错误(fatal errors)。添加了新 参数的方法,会在那个版本的升级指南中说明。
下面的表格列出一些用例,以及你从 CakePHP 可以期望得到的兼容性:
如果你…… |
向后兼容性? |
---|---|
使用类作为类型约束 |
是 |
创建新的实例 |
是 |
扩展类 |
是 |
访问公共属性 |
是 |
调用公共方法 |
是 |
扩展类并且…… |
|
重载公共属性 |
是 |
访问受保护的属性 |
否 1 |
重载受保护的属性 |
否 1 |
重载受保护的方法 |
否 1 |
调用受保护的方法 |
否 1 |
添加公共属性 |
否 |
添加公共方法 |
否 |
为重载的方法添加参数 |
否 1 |
为已有的方法添加缺省参数 |
是 |