Yii 2.0.16


Yii PHP框架团队发布了版本2.0.16,其中包含一百多个修复程序和一些改进 。 修复了几个安全问题。


Yii 2.0分支在一年多以前被冻结,这意味着它主要接受更正。 这样做是为了让Yii团队专注于Yii3。在这篇文章的最后,还有关于Yii 3的更多信息。


此版本包括一些可能影响现有应用程序的更改。 确保阅读UPGRADE.md


非常感谢参与开发的Yii社区成员 。 没有你,这样的大规模项目是不可能的。 特别感谢翻译人员保持文档最新。


以下是仍设法泄漏到该发行版中的最有趣的改进。 与往常一样,完整列表可在CHANGELOG中找到。


活动记录


Salem Ouerdani,@ tunecino添加了乐观锁定的行为。


乐观锁定允许多个用户同时编辑记录,并避免服务器端发生潜在冲突。 如果用户尝试基于过时的数据(因为已经保存了另一个用户)来保存编辑, StaleObjectException ,并且不会进行更新或删除。


这种锁本身的机制是在Yii的第一个版本中实现的,但是正确地使用它并不是那么简单。 现在很简单。


文档可以在官方手册中找到
OptimisticLockBehavior API


移居


现在,控制台迁移生成器默认情况下使用表前缀。 如果要更改此设置,可以在控制台命令config yii\console\controllers\MigrateController::useTablePrefixfalse


资料库


  • MySQL驱动程序现在支持临时类型的小数秒精度(需要MySQL> = 5.6.4)。
  • Oracle驱动程序现在支持重置序列。

帮手


  • yii\helpers\Inflector学习了如何与UTF-8一起正常工作。
  • 为Unix来宾计算机上的Windows球添加了标志yii\mutex\FileMutex::$isWindows
  • 现在,可以在使用var_export()进行序列化之后还原yii\helpers\UnsetArrayValueyii\helpers\UnsetArrayValue yii\helpers\ReplaceArrayValue

网格视图


添加了选项$filterOnFocusOut ,它确定失去焦点时是否应执行过滤。


jQuery的


现在您可以安装jQuery 3.3。


互斥体


  • 如果提供了$timeout尝试获取锁yii\mutex\FileMutex::acquireLock()的频率yii\mutex\FileMutex::acquireLock()增加。
  • yii\mutex\PgsqlMutex::acquire()增加了对$timeout支持。

安全修复


已修复两个安全问题:


  • CVE-2018-14578:绕过\yii\web\Request::getMethod() CSRF令牌验证
  • CVE-2018-19454: \yii\log\Target过多记录了敏感信息

应用模板


  • 基本模板和高级模板中的Codeception配置均已清除。
  • Docker的简单配置已添加到“高级”模板。
  • 现在,“高级”模板需要更高版本的Codeception,该版本仅自PHP 7.0起可用。 旧的应用程序将像以前一样工作。

关于Yii 3.0的一些知识


Yii的下一个主要版本将是3.0。 详细的公告将在稍后发布,但现在仅简要介绍一下:


更新的体系结构 :框架分为单独的程序包
这将使您可以从他们那里收集您需要的东西。


与JavaScript无关 :随着源代码的重组,Yii与内核中的JavaScript框架无关
Yii密钥包不需要jQuery。


与PSR兼容 :Yii 3将遵循PHP-FIG的建议。 已经实现了许多PSR:日志记录,缓存,DI和其他。


Yii 3.0正在积极开发中。 有关发布Alpha版本的详细公告。

Source: https://habr.com/ru/post/zh-CN438394/


All Articles