Yii 2.0.2 发布了
我们很高兴的宣布 Yii Framework 2.0.2 版本发布了。请参考说明 http://www.yiiframework.com/download/ 安装或升级到此版本。
2.0.2 版本是 Yii 2.0 的一个补丁版,包含大约 40 个小的新功能和 bug 修复。关于这个版本更新的完整列表,请参阅更新日志。在此我们感谢所有的花费宝贵时间来帮助提升 Yii 并且使这次发布成为可能的所有贡献者。
你可以通过在 GitHub 上 starring 或者 watching Yii 2.0 GitHub 项目来跟踪 Yii 2 的开发进度。你可以通过 Yii Twitter feeds 或者加入 Yii Facebook group 来联系其他的 Yii 开发者。
在本次发布中我们总结了一些最重要的功能,如下。
路由别名 ¶
之前,核心框架代码仅支持代表文件路径和 URLs 的别名。现在添加路径别名的支持。特别地,您可以为路径创建一个别名,并且当你需要为它创建一个 URL 然后使用别名来引用路径。路径别名主要通过 Url::to() 和 Url::toRoute() 帮助方法来支持。例如,
use yii\helpers\Url;
Yii::setAlias('@posts', 'post/index');
// /index.php?r=post/index
echo Url::to(['@posts']);
echo Url::toRoute('@posts');
你可能会发现,当你的路由设计还没有完全确定下来时,并且你的路由设计有更改,你想避免去修改每一个相关的 URL 生成代码,路由别名很有用处。
依赖组件配置 ¶
许多组件包含的属性需要通过依赖应用组件的 ID 进行配置,像 yii\caching\DbCache::db, yii\web\CacheSession::cache 这些。但是有的时候为了避免引入新的应用组件或者为了单元测试,你可能想直接通过一个配置数组来配置属性,并创建依赖组件,你可以像下面这样来实现:
$cache = Yii::createObject([
'class' => 'yii\caching\DbCache',
'db' => [
'class' => 'yii\db\Connection',
'dsn' => '...',
],
]);
如果你现在正在基于一个外部组件来开发一个新类,你可以使用下面的方法来获得类似的支持:
use yii\base\Object;
use yii\db\Connection;
use yii\di\Instance;
class MyClass extends Object
{
public $db = 'db';
public function init()
{
$this->db = Instance::ensure($this->db, Connection::className());
}
}
以上代码将允许按以下任意初始值配置数据库属性:
- 代表应用组件 ID 的字符串;
- yii\db\Connection 的实例;
- 可以用来创建 yii\db\Connection 实例的配置数组。
不可变的 Slug ¶
如果你正在使用 yii\behaviors\SluggableBehavior,你可以使用一个新的属性来命名 immutable。通过设置这个属性为 true,如果一个 slug 之前已经被生成,它将不会再改变,即使相应的源属性值已经被改变。这对于 SEO 为目的特别有用,因为你不想改变使用 slug 来发布的 URL。
DatePicker Language Fallback ¶
yii\jui\DatePicker 挂件现在支持 language 回退,当你配置了它的语言属性包含地区和或 ... 很有用。例如,如果你设置 language 为 de-DE,挂件找不到名称为 /ui/i18n/datepicker-de-DE.js 语言文件时,它将会回退 language 为 de,并尝试使用 /ui/i18n/datepicker-de.js 语言文件。
传递验证错误 ¶
现在 yii\base\Model 类有了一个很方便的方法 addErrors(),它允许你将验证错误从一个模型转移到另一个模型。例如,如果你有一个表单模型类包含活动记录模型类,你可能会想传递表单验证错误到活动记录类,你可以简单地调用这个方法来实现:
use yii\base\Model;
use yii\db\ActiveRecord;
class MyForm extends Model
{
public $model;
public function process()
{
// ...
if (!$this->validate()) {
$this->model->addErrors($this->getErrors());
// ....
}
}
}
新闻归档
热门标签
- yii3
- 扩展
- 发布
- yii2
- debug
- auth client
- view
- bootstrap
- release
- html
- redis
- apidoc
- Yii 2.0
- Yii 1.1
- mongodb
- mailer
- extensions
- twig
- gii
- queue
- runner
- http 客户端
- console
- validation
- cache
- sphinx
- widget
- hydrator
- translator
- symfonymailer
- db
- http
- log
- error handler
- config
- swiftmailer
- 图书
- imagine
- assets
- i18n
- IDE
- swagger
- elasticsearch
- router
- csrf
- smarty
- definitions
- logging
- fastroute
- user