CakePHP 3.0.0-alpha1 发布

我们很高兴宣布 3.x 系列中的一个新版本,目前正在接近稳定版本

CakePHP 核心团队自豪地宣布 CakePHP 3.0.0 的第一个 Alpha 版本。在 3.0.0-dev3 和此版本之间的几个月里,我们一直非常努力地实现更多剩余的部分,并结合我们从社区获得的所有宝贵反馈。

在进入 Beta 版本之前,我们还需要完成一些更大的功能,最重要的是

  • 更新的 i18n 和 L10n 功能。
  • 基于边缘端包含 (Edge Side Includes) 的 CacheHelper 替代方案。
  • 一个新的路由 API,用于更简单更快的路由声明。

Alpha 版本将专注于完成这些关键功能。之后,我们将开始发布 Beta 版本,重点关注完善任何粗糙或混乱的功能,改进错误消息/帮助以及移植核心团队提供的插件。

在过去的一个月里,我们从社区收到的宝贵反馈和支持让我们深受感动。我们收到了许多错误报告、拉取请求和文档修改,帮助我们改进了 3.0 的整体。

此版本还附带了新功能和更改的完整文档,请务必查看新的 CakePHP 3.0 手册,详细了解它们。

以下是 3.0.0-alpha1 中新增的功能和更改列表

重构的调度器过滤器

调度器过滤器已经过重构和扩展,以包含 CakePHP 中以前的一些“魔法”功能。过滤器现在作为实例注册,而不是通过配置数据注册,这使得进行依赖注入变得非常简单。

调度器过滤器还包括一种方法,可以限制它们何时应用于任何给定的请求。

新的 Session 对象

在 CakePHP 中,会话管理一直是一个静态类,这在许多方面都证明是有问题的。对于 CakePHP 3.0,您可以从请求对象 ` $this->request->session()` 中访问会话。

此更改还使会话更容易测试,并允许 CakePHP 使用 PHPUnit 4.x

FlashHelper 和 FlashComponent

闪存消息在现代 Web 应用程序中发挥着重要作用。虽然 CakePHP 一直以来都提供基本的闪存消息支持,但 CakePHP 3.0 为开发人员提供了更多工具,以简单的方式创建和渲染多种类型的消息。为了实现这一点,创建了独立的组件和助手。我们感谢 jadb 和 bcrowe 为实现此代码而付出的努力。

CookieComponent

过去,CookieComponent 只能一次管理一个 Cookie 命名空间。虽然它提供了创建加密 Cookie 的强大工具,但这些工具很难始终如一地正确使用。重新设计的 CookieComponent 使分离 Cookie 命名空间的配置和 Cookie 数据的处理变得更加容易。

密码默认使用 Bcrypt

使用 bcrypt 进行密码哈希是当前的最佳实践。为了帮助引导开发人员朝着正确的方向发展,我们已将 bcrypt 设为 CakePHP 中默认的密码哈希系统,并提供了一个易于使用的 FallbackHasher,它允许您从旧的哈希算法逐步更新密码哈希。

主题和插件合并

对于 CakePHP 3.0.0,我们希望使主题更强大、更健壮。当我们寻找改进主题的方法时,我们意识到我们真正想要的是插件。为此,您现在可以使用任何插件作为主题。这使得打包和重新分发主题变得容易,因为它们只是插件,并且可以包含助手和单元。

应用程序和插件共享标准建议的目录布局

为了使您的开发体验尽可能一致,我们更新了应用程序框架和插件框架,以使用相同的目录结构。这将有助于使使用插件感觉就像在小型模块化应用程序中工作一样。

ORM 改进

一些 API 更改已进入新的 ORM。现在,为保存操作指定深度关联变得更加简单,并且我们更改了一些约定,以减少新用户的学习曲线和混淆。

更好的性能

我们对 3.0 中的新功能进行了初步的性能审查,并花了一些时间消除明显的瓶颈。我们很高兴地宣布,我们成功地使引导过程和助手模板生成的几个部分更快。

此外,我们还发现了一种使路由过程速度提高数倍的方法。我们将为下一个 Beta 版本实现这些新想法。

您可以 下载 此版本,或者直接使用 composer create-project -s dev cakephp/app 从今天开始使用 CakePHP 3.0!