CakePHP 3.0.0-alpha2 发布

CakePHP 核心团队很高兴宣布立即提供 CakePHP 3.0.0-alpha2。

CakePHP 核心团队很高兴宣布立即提供 CakePHP 3.0.0-alpha2。CakePHP 3.0.0-alpha2 是 CakePHP 3.0.0 的第二个 alpha 版本。自 3.0.0-alpha1 发布以来,已经合并了一些新功能,并修复了许多问题。

3.0.0-alpha2 中的新功能

路由器重构和基于构建器的 API。

Router 类已在内部重构,并添加了新方法,允许您的路由文件比以往更 DRY。除了改进的方法之外,解析传入 URL 的性能也得到了显著提高。Router 对缺少的路由更加严格,并在无法解析 URL 或与已连接路由匹配时通知您(通过异常)。

CakePHP 提供的默认路由已被删除。虽然在原型阶段很有帮助,但这些路由会在大型应用程序中造成重复内容问题,而且通常不会被使用。取而代之的是,提供了一个较小的路由子集来帮助应用程序开发的原型阶段。如果您有一个使用 3.0 的现有应用程序,则需要更新您的 routes.php 文件。

删除 CacheHelper

CacheHelper 已从 CakePHP 中删除。核心团队认为此助手提供的功能最好由独立服务器(如 Varnish)处理。虽然我们探索了为 CacheHelper 创建基于 ESI 的替代方案,但存在许多边缘情况,这些情况会使实施变得复杂。

ORM 改进

  • BelongsTo 和 HasOne 关联中的空关联不再填充空实体。相反,关联属性将为 ` null`。
  • 所有各种 ORM 操作的选项现在一致。
  • 您可以在将数据从请求编组到实体时指定字段白名单。
  • 现在,使用 ` _initializeSchema` 表挂钩方法更容易实现自定义列类型。
  • Query::newExpr() 现在接受 SQL 表达式。
  • 具有可空值的条件更容易构建 ` ‘fieldIS’=>$val` 当 ` $val` 不为 ` NULL` 时,将生成正确的 SQL。
  • 具有 ` IN` 子句的条件在空数据情况下效果更好。

其他更改

  • HtmlHelper 和 FormHelper 已删除其 ` $confirmMessage` 参数,并用 ` confirm` 选项替换。
  • 改进了 Cells 的错误。
  • 带前缀的控制器现在可以使用带前缀的布局,这些布局将自动检查。
  • Cookie 现在按需读取和解密。
  • ` ssl` 路由选项现在为 ` _ssl`。
  • ` [method]` 路由选项现在为 ` _method`。
  • 已删除基于标头的路由匹配。它很少被使用。
  • 已删除 Router::resourceMap()。Router::mapResources() 的新选项取代了使用此方法的需要。
  • Bcrypt 哈希已从 ` Security::hash()` 中删除

CakeFest 2014 的门票仍然有售。您可以 立即购买门票,加入我们在马德里举办的关于 CakePHP 和相关技术的精彩演讲和教程。

有关 3.0.0 中所有更改的更多详细信息,您可以查阅 迁移指南。我要感谢所有为 3.0 提供想法、代码、文档或反馈的人。我们非常感谢所有早期采用者及其反馈。尽早发现和修复问题非常有帮助。