再看 Yii2

JellyBool

JellyBool

之前有两篇文章写了一些关于Yii 2.0的MVC和Yii 2.0的Actived Record,现在来全局性地看一看Yii 2.0相对于Yii 1.1到底有哪些改善。个人总结有一下几个:

1.Yii 2.0 的应用目录结构和安装

如果你之前使用过Yii 1.1的话,你可能在刚开始上手Yii 2.0的时候就发现了这个变化,没错,我说的就是Yii 2.0的应用目录结构和安装方法。先说安装方法,在Yii 2.0中已经使用Comsoper来管理各种依赖关系,你在安装的时候完全可以用composer来进行安装,而且,Yii 2.0还支持两个不同的安装版:basic 和 advanced。采用basic安装的话,Yii 2.0会提供一个纯粹的框架开发环境(也就是最基础的应用目录,没有前台);而采取advanced的安装方法,Yii 2.0则会让你拥有一个完整的CMS(跟wordpress一样,分前台和后台)结构的开发环境。对于一些期望快速开发出一个小而美的Web应用的同学,建议使用的basic安装,这就够你玩了,还不用去修改不需要的代码。

之前在Yii 1.1的时候可能有一些上手的同学会觉得那个版本的应用目录有点尴尬,但在Yii 2.0中就完美地给你一个清晰的项目目录结构(至少比Yii 1.1好多了):

backend – 后台.

common –公共文件.

console – console 应用.

environments – 环境配置.

frontend – 前台.

为什么说这样的结构会更好呢?其实就是因为你可以很清晰地知道哪个目录该放什么东西,你几乎可以立马上手去开发你的Yii 2.0应用。

2.Yii 2.0更安全

对于Web应用开发来说,安全从来都是不容忽视的一方面,不过庆幸的是,Yii 2.0的安全特性并不会让你失望,相比于Yii 1.1,在Yii 2.0中使用UserIdentity classes, Access Control Filters 和 Role-based Access Control来对安全进行控制,并且还有一点值得说明的是,在Yii 2.0中还增加了一个安全事件用来把控应用的安全,你可以像下面的示例一样轻松使用:

Yii::$app->security->encrypt()

PS:听说Yii 2.0在开发的时候请了一堆安全专家(包括Tom WorsterAnthony Ferrara)来review Yii 2.0的代码,以确保Yii 2.0足够安全

3.事务管理

对于事务管理,最大的变化就是你可以在事物中使用回调函数了:

$connection->transaction(function() {

    $order = new Order($customer);

    $order->save();

    $order->addItems($items);

});

另外,Yii 2.0中还为事务管理定义一些新的事件以使得你可以在事务的生命周期内更好的控制事务的整个过程,像beginTransaction 和 commitTransaction 就是这样的事件,分别在开始事务和提交事务的时候触发。

4.更高级的管理

Yii 2.0中还引进一些近年来很火的包管理工具(如bower npm)来管理assets,你可以通过composer来跟bower,npm交互进而更好地为你的开发管理一些依赖管理和开发包。更详细的说明请移步: http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

5.开发工具

在Yii 2.0 中,Yii debugger tool 得到更好的支持和改善,以至于现在它变得跟Symfony debug toolbar差不多了,都很强大。而且,在Yii中,你还不能忽视Gii tool,而在Yii 2.0中,Gii可以直接在console里使用了,这无疑会大大提高你的开发效率,因为通过Gii可以生成很多重复的代码

6.模板引擎

之前也提到过,在Yii 2.0中,你可以使用一些流行的模版引擎了,比如Smarty,Twig等,不再为你的前台文件担心。爽!

当然,如何你要使用这些模版引擎,请按需安装官方的模版引擎插件

最后

糊里糊涂地写了一些Yii 2.0地东西,没错,其实我就是想忽悠你上手Yii 2.0的,马上上手请点这里:http://www.yiiframework.com/doc-2.0/guide-intro-yii.html
届时有啥问题可以来交流交流。

本文由 JellyBool 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 4 条评论

alirizhi
修改的评论也不能少于六个字哦!
JellyBool 回复 alirizhi
修改的评论也不能少于六个字哦!
lookfeel 回复 JellyBool
修改的评论也不能少于六个字哦!
alirizhi 回复 JellyBool
修改的评论也不能少于六个字哦!
JellyBool 回复 alirizhi
修改的评论也不能少于六个字哦!
beeex
修改的评论也不能少于六个字哦!