CakePHP 3.3.0 发布

CakePHP 核心团队很高兴宣布 CakePHP 3.3.0 现已发布。这是 3.3 分支的稳定版本。3.3.0 为 CakePHP 带来了许多大大小小的改进。它还弃用了将在 4.0.0 中移除的几个特性。

升级到 3.3.0

您可以使用 Composer 升级到 CakePHP 的新版本

php composer.phar require "cakephp/cakephp:~3.3"

弃用

  • Router::mapResources() 已弃用。请使用路由范围和 $routes->resources() 代替。
  • Router::redirect() 已弃用。请使用路由范围和 $routes->redirect() 代替。
  • Router::parseNamedParams() 已弃用。命名参数向后兼容性将在 4.0.0 中移除。
  • Cake\Http\Response 已弃用以下方法,因为它们与 PSR7 接口方法重叠。
    • statusCode() 请使用 getStatusCode() 代替。
    • encoding() 请使用 getEncoding() 代替。
    • header() 请使用 getHeaderLine() 代替。
    • cookie() 请使用 getCookie() 代替。
    • version() 请使用 getProtocolVersion() 代替。
  • 调度程序过滤器现已弃用。请使用新的 HTTP 中间件功能。
  • RequestActionTrait 已弃用。请重构您的代码以使用视图单元格代替。
  • Cake\\Utility\\Crypto\\Mcrypt 引擎已弃用,因为 mcrypt 扩展在 PHP 7.1 中已弃用。请使用 openssl 驱动程序代替。

3.3.0 中的新增内容

迁移指南 包含 3.3.0 中新增内容以及已弃用内容的完整列表。我们建议您在升级时阅读该页面。以下是 3.3.0 中新特性的简短列表:

  • 添加了 PSR7 中间件支持。这是一个选择加入功能,使您能够在 CakePHP 应用程序中利用来自更广泛 PHP 社区的不断增长的 PSR7 中间件库。
  • TranslateBehavior 的工作流程得到简化,比以前更容易创建用于多个翻译值的表单。
  • Cake\Network\Http\Client 已移至 Cake\Http\Client。它的请求和响应对象现在实现了 PSR7 接口
  • 添加了对映射复杂数据类型的更多支持。这使得处理地理空间类型以及无法用字符串表示的 SQL 查询数据变得更加容易。
  • 添加了一个新的 JsonType。这种新类型使您可以使用 MySQL 和 Postgres 中可用的原生 JSON 类型。在其他数据库提供程序中,json 类型将映射到 TEXT 列。
  • 当实体转换为 JSON 时,关联对象不再使用 toArray() 首先转换为数组。相反,jsonSerialize() 方法将对所有关联实体调用。这使您在实体的 JSON 表示中暴露哪些属性方面具有更大的灵活性和控制权。
  • 您现在可以轻松地在一个控制器操作/视图模板中对多个查询进行分页。
  • 为了帮助您更好地管理来自 CLI 环境的缓存数据,添加了一个 shell 命令,该命令公开了用于清除缓存数据的 方法。

一如既往,感谢所有通过报告问题和发送 pull 请求帮助实现此版本的社区成员。3.3.0 是一个大型版本,没有社区支持和反馈,它是不可能实现的。

下载 github 上的打包版本