CakePHP 3.4.0-beta1 发布

CakePHP 核心团队很高兴宣布立即提供 CakePHP 3.4.0-beta1。这是 3.4.0 的第一个 beta 版本,它包含几个新的主要功能。

更新到 beta 版本

您可以使用 composer 升级到 CakePHP 3.4.0 的 beta 版本

php composer.phar require "cakephp/cakephp:3.4.0-beta1"

如果您能暂时升级您的应用程序并运行测试,我们将不胜感激。通过为 beta 版本中的任何回归打开问题,我们可以帮助确保在稳定版本发布之前更平稳地发布 3.4.0。

3.4.0 中的显著变化

Cake\Network\Response 已更新以实现所需的 PSR-7 接口,并弃用了一些与接口方法重叠的方法。它还添加了所有辅助方法的不变版本,这些方法在过去由 Response 提供。由于核心响应对象现在实现了 PSR-7 接口,Cake\Http\ResponseTransformer 已被弃用,不再使用。

Cake\Http\ServerRequest 的剩余公共属性已弃用。现在应该通过方法访问请求上的所有公共属性

$base = $this->request->base;
// Should now be
$base = $this->request->getAttribute('base');

为了提供更简单的接口,这些接口更可预测、具有更简单的返回类型,并且更便于 IDE 自动完成功能,一些类已将其组合的 get/set 方法弃用。组合方法已被 getXsetX 风格的方法替换。到目前为止,在 3.4.0 中已更新的类是

  • CakeConsoleConsoleOptionParser
  • CakeDatabaseConnection
  • CakeDatabaseDriver
  • CakeDatabaseExpressionFunctionExpression
  • CakeDatabaseExpressionQueryExpression
  • CakeDatabaseExpressionValuesExpression
  • CakeDatabaseQuery
  • CakeDatabaseSchemaCachedCollection
  • CakeDatabaseSchemaTableSchema
  • CakeDatabaseTypeMap
  • CakeORMEagerLoadable
  • CakeORMQuery
  • CakeORMTable
  • CakeValidationValidator
  • CakeViewStringTemplateTrait
  • CakeViewViewBuilder

此外,每个关联类现在都提供了一个流畅的接口,用于定义各种关联选项。这些方法改善了 IDE 自动完成功能,并使错误更容易找到

$this->belongsTo('Comments', [
    'foreignKey' => 'article_id',
    'finder' => 'active',
    'startegy' => 'subquery' // Contains a typo that can be hard to spot
]);

// Now becomes
$this->belongsTo('Comments')
    ->setForiegnKey('article_id')
    ->setFinder('active')
    ->setStrategy('subquery');

可以在 3.4.0 迁移指南 中找到 3.4.0 中所有更改的完整列表

3.4.0-beta1 的贡献者

感谢所有帮助完成此版本的贡献者

  • ADmad
  • Andrej Griniuk
  • André Teixeira
  • Florian Krämer
  • Jonas Hartmann
  • Joris Vaesen
  • José Lorenzo Rodríguez
  • Juan Basso
  • Marc Würth
  • Mark Scherer
  • Mark Story
  • Mathew Foscarini
  • Ondrej Mirtes
  • antograssiot
  • chinpei215
  • glafarge
  • inoas
  • jirka
  • ndm2
  • offline

与往常一样,我们要感谢所有打开问题、创建拉取请求或更新文档的贡献者。