yii-YiiPHP框架1.1.11发布
我们非常高兴地宣布Yii框架1.1.11版本发布。在此版本中,我们已经包含了100多个改进和bug修复。
此版本是有特殊意义的,因为这是我们迁移到 github 上的发布的第一个版本,并且很多的工作是由我们的社区贡献的,包括新功能、修复错误、单元测试、当然还有翻译。
我们非常感谢那些为Yii付出脑力和时间的人:resurtm, DaSourcerer, cebe, suralc 和 其他.
完整的修改列表请见 change log 和 重要功能添加。如果你计划从旧版本升级到 1.1.11,请阅读 升级说明.
下面我们简要介绍一下新版本中的一些修改。
在 CHtml 中支持 HTML5 字段
我们为 CHtml 添加了一组方法:
- CHtml::dateField()
- CHtml::rangeField()
- CHtml::numberField()
- CHtml::emailField()
- CHtml::urlField()
- CHtml::activeDateField()
- CHtml::activeRangeField()
- CHtml::activeNumberField()
- CHtml::activeEmailField()
- CHtml::activeUrlField()
它们的使用方法如下:
echo CHtml::activeNumberField($model, 'fieldName');
CFormatter::formatSize()
这是一个新添加的方法,它允许格式化友好的bytes大小。
echo Yii::app()->format->formatSize(115969); // 显示: 113.25 KB
控制台应用程序的返回码
你现在可以在控制台程序动作中返回整型码,并且像应用程序返回码一样使用。
学习更多请查看 http://www.yiiframework.com/doc/guide/1.1/en/topics.console#exit-codes
CJavaScript::encode() 和 js:
当你程序中的CJavaScript::encode()使用用户的输入作为参数时,你的程序是不安全的,为避免它可以设置第二个参数为 true。
CJavaScript::encode($userInput, true);
这将禁用参数前缀js:, 如果你需要使用JavaScript 表达式。你可以使用 CJavaScriptExpression 围绕。
CJavaScript::encode(new CJavaScriptExpression('alert("Yii!");'), true);
注意: 第二个参数对CJavaScriptExpression不起作用。
HTTP 缓存
为了在一个动作中简单的缓存输出,新版本引入了 CHttpCacheFilter, 这个过滤器通过设置 HTTP 头来通知客户端页面内容在最后一次请求后没有改变,这样服务器就不会重新传输内容。CHttpCacheFilter 的设置跟 COutputCache 类似.
public function filters() { return array( array( 'CHttpCacheFilter + index', 'lastModified'=>Yii::app()->db->createCommand("SELECT MAX(`update_time`) FROM {{post}}")->queryScalar(), ), ); }
更多内容请查看权威指南
模型验证规则黑名单
如果你想在特殊的场景中不进行验证,你只需要设置包含场景名的参数,语法如下:
// 多个场景使用逗号分隔 (忽略空格) array('username', 'required', 'except'=>'ignore, this, scenarios, at-all',)
更多内容请查看权威指南
翻译团队的新工具和新工作流
新的翻译规则是为在github托管的翻译定义的工作流,新的工具可以显示最后更新后的所有改变。我们希望这有助于翻译团队
PHP之友评论