2018年6月10日发布了Yii框架3.0.0 更新的第一个alfa版本
Yii 3.0中的新功能
- 包 “ezyang/htmlpurifier” 已经成为可选项,默认情况下不会安装
- 移除 Yii 自动加载器以支持 Composer 的 PSR-4 实现
- 删除了特定于 HHVM 的代码
- 在 ApcCache 中删除了 APC 支持, APCu 像以前一样工作
- 当覆盖默认值时,会更改
yii\grid\DataColumn :: $filterInputOptions
的行为 - 将屏蔽的输入字段小部件移动到单独的扩展https://github.com/yiisoft/yii2-maskedinput
- 邮件消息组成提取到单独的类,
yii\mail\Composer
,可以通过yii\mail\BaseMailer :: $composer
获得设置 - 将
yii\base\InvalidParamException
重命名为yii\base\InvalidArgumentException
- 更新了未安装 intl 扩展时使用的后备日期格式,以匹配最新 ICU 版本的默认值
- 删除了 XCache 和 Zend 数据缓存支持作为缓存后端
- 更新了
yii\widgets\ActiveField :: hint()
方法签名以匹配label()
- 删除了
yii\base\Object :: className()
,支持本机PHP语法:: class
,它不会触发自动加载 - PHP的最低要求版本现在为7.1
- 所有框架小部件中run()方法的一致行为。现在返回结果以获得更好的可扩展性
yii\web\RequestParserInterface :: parse()
的签名已更改为接受yii\web\Requestinstance
作为唯一参数- 删除了 CUBRID 数据库支持
- 删除了 PJAX 支持
- 包 'captcha','jquery','rest','mssql' 和 'oracle' 已被提取到扩展中
- 删除了在
2.0.x
中标记为已弃用的方法
Yii 3.0中的增强功能
- 使用
random_int()
而不是mt_rand()
来生成加密安全的伪随机整数 - 对象
yii\helpers\ReplaceArrayValue
,yii\helpers\UnsetArrayValue
现在支持在使用var_export()
函数导出后恢复 - 添加了
yii\web\AssetConverter::$isOutdatedCallback
,允许自定义检查过时的资产转换结果 - 在
yii\serialize\*
命名空间下添加了序列化抽象层 - 增加了对 PSR-3 'Logger' 支持
- 优化了
yii\filters\AccessController
处理访问规则 - 将
$checkAjax
参数添加到方法yii\web\Controller::redirect()
,该方法控制 AJAX 和 PJAX 请求中的重定向 - 邮件视图呈现封装到
yii\mail\Template
类中,允许隔离呈现并通过视图内的$this-> context->message
访问yii\mail\MessageInterface
实例 - CAPTCHA渲染逻辑被提取到
yii\captcha\DriverInterface
中,该实例可通过yii\captcha\CaptchaAction::$driver
字段获得 yii\web\Request :: getBodyParams()
在无效或缺失 'Content-Type' 头时,生成 415 “Unsupported Media Type” 错误yii\web\Request :: getBodyParams()
的结果现在包括上传的文件- 已上载的文件检索方法已从
yii\http\UploadedFile
移至yii\web\Request
- 添加了对 PSR-7 HTTP Message 的支持
- 根据 PSR-16 “Simple Cache” 规范重构的缓存实现
相对与 Yii2 改动
Yii3这个版本改动相对于Yii2是非常的巨大,包括以下特性:
- Yii3需要PHP的最低版本是 7.1 并且 HHVM 不再被支持.
- Yii3 将采用新的版本规则,即 semver since 3.0规则.
- 不再使用Subtree-split 模式.
- 放弃使用 Yii自己的 autoloader 改为用 Composer 的autoloader.
- 框架的结构也进行了大量的调整,分出来好几个包,包括下面这些:
- yiisoft/yii-core - 这个是Yii Framework .
- Yii 2.0 的开发还是在 yiisoft/yii2 仓库. Yii2 只支持Bug 和安全补丁,新特性和加强的特性不在被接收。
- yiisoft/di - PSR-11适应依赖注入的 container.
- yiisoft/log - PSR-3 适应 Psr-3的 logging library.
- yiisoft/cache - PSR-16 适应 psr-16的 caching library.
- yiisoft/db - 数据库的 abstraction and QueryBuilder.
- yiisoft/db-mysql - MySQL 的db扩展.
- yiisoft/db-pgsql - PostgreSQL 的db扩展.
- yiisoft/db-sqlite - SQLite 的db扩展.
- yiisoft/db-mssql - MSSQL 的db扩展.
- yiisoft/db-oracle - Oracle 的db扩展.
- yiisoft/active-record - ActiveRecord 库.
- yiisoft/rbac - RBAC 库.
- yiisoft/view - 视图渲染库.
- yiisoft/yii-web - Web 扩展.
- yiisoft/yii-rest - REST API 扩展.
- yiisoft/yii-console - console 扩展.
- yiisoft/yii-jquery - JQuery 扩展.
- yiisoft/yii-bootstrap3 - Bootstrap 3 扩展.
- yiisoft/yii-bootstrap4 - Bootstrap 4 扩展.
- yiisoft/yii-dataview - data displaying 扩展.
- yiisoft/yii-masked-input - Masked input field widget.
- yiisoft/yii-captcha - CAPTCHA 扩展.
- 更多的 PSR 兼容: PSR-3, PSR-11, PSR-16
- 框架核心只需要虚拟PSR实现包,您可以自由选择日志记录器和缓存实现。
- 更多PSR实现的兼容性预计将在稍后实现。
- 从Application and Module 删除ServiceLocator ,采用 container来替代.
- 数据库的扩展被分到几个composer包里面.
- 删除PJAX 的支持.
- yiisoft/yii2-composer 这个包不再被使用.
- 不再提供高级的项目模板. 项目模板也有所变化
- yiisoft/yii-project-template - 工程模板;
- yiisoft/yii-base-web - web的基础应用模板.
我们将为您提供Yii框架中所有最新更改的最新信息。