CakePHP 3.0.0-beta3 发布

CakePHP 核心团队很高兴宣布发布 CakePHP 3.0.0-beta3。虽然我们最初计划只进行 2 个测试版发布,但我们对当前的 ORM 验证工作流程并不完全满意,并希望在那里做一些额外的工作。新计划是在 beta3 之后至少发布两个 RC 版本。RC 版本将锁定 API,不会添加新的功能或重大更改。

CakePHP 核心团队很高兴宣布发布 CakePHP 3.0.0-beta3。虽然我们最初计划只进行 2 个测试版发布,但我们对当前的 ORM 验证工作流程并不完全满意,并希望在那里做一些额外的工作。新计划是在 beta3 之后至少发布两个 RC 版本。RC 版本将锁定 API,不会添加新的功能或重大更改。

自 3.0.0-beta2 以来,我们一直在努力将社区反馈纳入其中,并完成将以重大方式破坏兼容性的剩余更改。

自 3.0.0-beta2 以来的重大更改

  • Bake 模板现在使用了一种模板机制,该机制涉及模板的预解析步骤。这样做是为了提高可读性并简化创建新的 Bake 模板的过程。这也意味着您可能拥有的任何自定义模板都需要更新。
  • Inflector::slug() 的默认替换现在是 - 而不是 _
  • LOG_ERRORTESTS 常量未使用,已被删除。
  • Controller::$actions 已被删除,并由 Controller::isAction() 代替。新方法使自定义控制器认为哪些方法是可路由操作变得更加容易。
  • Component::initialize() 现在与所有其他初始化方法一样,是一个后构造钩子。
  • Component 有一个新的 beforeFilter() 事件监听器,它在控制器的 beforeFilter 方法之前触发。
  • CakeSession::read() 现在在所有失败情况下都返回 null。
  • 使用 requestAction() 调用的控制器操作现在必须返回一个 Response 对象。所有其他返回值将触发错误。
  • 数据库配置不再接受 ‘login’ 键。您 *必须* 使用 ‘username’。更改此项是为了解决整个框架中的不一致问题。
  • 复选框和单选按钮现在嵌套在它们所附加的标签元素中。这样做是为了提高与一些流行的 CSS 库的兼容性。如果您自定义了 FormHelper 使用的模板,则可能需要更新您的模板。
  • CakeViewErrorMissingViewException 现在是 CakeViewErrorMissingTemplateException,以便允许 MissingView 用于缺少的视图类。
  • 已实现 logout() 的身份验证对象需要更新为使用新的 Auth.logout 事件。
  • 配置值 App.www_root 已重命名为 App.wwwRoot,以保持一致性。

自 3.0.0-beta2 以来的新功能

  • CakeCacheEngineFileEngine 现在在调试关闭时生成目录。
  • 从 CakePHP 中提取了几个新的独立库。CacheLogUtility 包现在可以使用 composer 单独安装。
  • 添加了 pj()(打印 json)帮助器方法,作为在交互式控制台或测试用例中工作时的便利功能。
  • 添加了 Model.initialize 事件。此事件在表的初始化钩子完成后立即触发,允许插件或其他监听器与表对象交互。
  • 数据库连接、缓存引擎、记录器和电子邮件传输现在可以使用 url 键使用数据源名称 (DSN) 进行配置。这使得在环境变量中定义配置变得更容易,这是许多平台即服务提供商推荐的方法。
  • 添加了 Component::initialize()View::initialize()
  • 可以使用 HtmlHelper::meta() 创建任意元标记。
  • 如果找不到自定义视图类,现在会引发异常。
  • 现在不会强制将编组到实体中的请求数据强制转换。这使得验证实体数据变得更容易,因为实体数据更接近原始请求数据。
  • 查询表达式生成器现在有一个 between() 方法,用于生成 BETWEEN 子句。
  • 添加了 CakeORMBehavior::initialize()
  • 如果安装了 xdebug,现在会在致命错误时显示堆栈跟踪。
  • Request::is() 现在将结果缓存到内存中。
  • AuthComponent 有两个新的事件。Auth.afterIdentify 在用户被识别或登录后触发。Auth.logout 在调用 AuthComponent::logout() 时触发。
  • SessionComponent 已弃用。您应该改用 $this->request->session()
  • FallbackHasher 类中的每个散列器现在都可以有单独的选项。

有关 3.0.0 中所有更改的更多详细信息,您可以查阅 迁移指南。最后,我们要感谢迄今为止帮助 3.0 版本发布的所有人。我们取得了很大进展,没有你们的帮助,我们今天就不会走到这一步。

下载 打包发布