yii是一個(gè)高性能的php5的web應(yīng)用程序開發(fā)框架。通過一個(gè)簡(jiǎn)單的命令行工具 yiic 可以快速創(chuàng)建一個(gè)web應(yīng)用程序的代碼框架,開發(fā)者可以在生成的代碼框架基礎(chǔ)上添加業(yè)務(wù)邏輯,以快速完成應(yīng)用程序的開發(fā)。
Yii2.0 版框架是完全重寫的,在 1.1 和 2.0 兩個(gè)版本之間存在相當(dāng)多差異?!就扑]學(xué)習(xí):Yii入門教程】
那么yii1和yii2的區(qū)別有哪些?
Yii 2.0 需要 PHP 5.4 或更高版本,該版本相對(duì)于 Yii 1.1 所需求的 PHP 5.2 而言有巨大的改進(jìn)。
1、應(yīng)用程序?qū)嵗苯邮褂萌置兞縼碓L問:$app,而無須調(diào)用app()。
2、Yii2在視圖層的一個(gè)顯著改變是引入了視圖類,這樣在MVC模式實(shí)現(xiàn)上更為完整。相應(yīng)的,相關(guān)展現(xiàn)層附屬類就由新的視圖類來接手管理,比如theme:Yii::app()->theme->baseUrl 應(yīng)該更新為 Yii::$app->view->theme->baseUrl,或者$this->theme->baseUrl。
3、Yii2引入了資源包的概念,資源引用的方式變化較大。
有兩種方式引入資源,一種是通過assets目錄下的AppAsset類,還有就是通過類似Yii1種的注冊(cè)方法。
Yii::app()->getClientScript()方法不再可用,比如想要在頁(yè)面中動(dòng)態(tài)注冊(cè)JS腳本文件,變動(dòng)如下:
Yii::app()->getClientScript()->registerScriptFile(‘…’) 修改為 Yii::$app->view->registerJsFile(‘…’),
或者$this->registerJsFile(‘…’)。
4、使用數(shù)據(jù)庫(kù)
比如查詢知道user_id的一條記錄記錄
yii1:
User::model()->find(‘user_id=:user_id’,[‘:user_id’=>$user_id]);
yii2:
User::find()->where(‘user_id=:user_id’,[‘:user_id’=>$user_id])->one();
查詢多條記錄:
yii1:
User::model()->findAll(‘status=:status’,[‘:staus’=>$status]);
yii2:
User::find()->where(‘status=:status’,[‘:staus’=>$status])->all();
另外yii2 還提供了 asArray() 方法,直接查詢結(jié)果為數(shù)組:
User::find()->where(‘status=:status’,[‘:staus’=>$status])->asArray()->all();
如果是初學(xué)者的話,建議直接學(xué)習(xí)yii2。