CakePHP 2.1 候选版本发布
CakePHP 2.1 的第一个,也是希望是唯一的候选版本发布了。如果您正在运行 2.0 版本的应用程序,或者计划迁移,现在是开始检查这个版本的好时机!
CakePHP 核心团队很自豪地宣布第一个 CakePHP 2.1.0 候选版本 [1] 的发布。正如之前版本中提到的,此版本与 2.0.6 完全向后兼容,使您能够轻松地更新您的应用程序,开始利用此版本中实现的众多改进。希望这是该分支的唯一候选版本,如果出现任何严重错误,我们将继续提供候选版本,直到我们达到稳定版本。
总共,除了之前的 2.1 测试版以外,此候选版本中还增加了 170 多个提交和 4 个新的主要功能或增强功能。可以在更改日志页面 [2] 中查看更改的完整列表。以下是此版本的几个主要亮点
大多数辅助程序转换为实用程序库
一个常见的特性请求是能够在视图之外使用 Text、Time 和 Number 辅助程序中的方法。在这些辅助程序中公开的方法的有效用法包括在 shell 中发送电子邮件,在模型中保存数据之前进行数据格式化,以及控制器中的其他几个情况。我们现在已将这些辅助程序重构为库 CakeTime 和 CakeNumber,而 Text 辅助程序中的所有方法都放置在 String 类中。
导入其中一个库与 App::uses(‘String’, ‘Utility’) 一样简单,并按以下方式使用它 String::truncate($text);
所有新的库都由静态方法组成,无需实例化类。此外,重构的辅助程序将继续像往常一样工作,但它们现在依赖于底层库来执行。这为交换辅助程序使用的“引擎”打开了可能性,以便在视图中生成相同的结果。
深度保存
saveAll 及其朋友(saveMany、saveAssociated、validateAssociated …)现在接受一个新的 deep 选项参数。如果将此参数设置为 true,它将尽可能深地保存数据,从而可以将您喜欢的任何级别的嵌套数据保存到单个事务中。例如,您可以仅用一次调用保存 Author、Posts 和相关的评论。
上述函数还接受 fieldList 选项,以指定应保存或验证哪些字段。此列表也将应用于深度关联。
新的 ACL 引擎
除了传统的数据库 ACL 引擎之外,我们还添加了一个新的基于配置文件的引擎。此引擎使用包含描述 AROS、ACOS 和权限的特定变量的 PHP 文件,以授予访问应用程序中资源的权限。对于那些想要在不需要数据库动态管理权限的情况下获得快速的权限检查系统的人来说,这是一个很好的替代数据库解决方案。
HtmlHelper::media()
HtmlHelper 获得了一个新的 media() 方法,用于生成支持多个备用源的兼容 HTML5 的音频和视频标签。
其他改进和更改
- 由于 PHP 错误 #44251 和 #45748,更新了最低 PHP 版本要求为 5.2.8
- Paginator 辅助程序现在接受一个选项来设置“当前”页面链接的默认类
- 扩展不存在的视图将抛出异常
- 现在可以使用绝对路径(相对于 View 文件夹)扩展视图
- Cake 核心中的大多数视图文件(如 home.ctp 和默认布局)已移至 app 文件夹。
- 使用预处理语句时,查询参数现在将显示在数据库日志中
我们即将准备好此版本,并且为社区准备了一些惊喜,敬请期待!与往常一样,感谢友好的 CakePHP 社区提供的补丁、文档更改和新问题。没有您,就没有 CakePHP!
- 下载打包的版本 [1]
- 查看更改日志 [2]