yii是一個高性能的php5的web應用程序開發框架。通過一個簡單的命令行工具 yiic 可以快速創建一個web應用程序的代碼框架,開發者可以在生成的代碼框架基礎上添加業務邏輯,以快速完成應用程序的開發。
Yii2.0 版框架是完全重寫的,在 1.1 和 2.0 兩個版本之間存在相當多差異。【推薦學習:Yii入門教程】
那么yii1和yii2的區別有哪些?
Yii 2.0 需要 PHP 5.4 或更高版本,該版本相對于 Yii 1.1 所需求的 PHP 5.2 而言有巨大的改進。
1、應用程序實例直接使用全局命名變量來訪問:$app,而無須調用app()。
2、Yii2在視圖層的一個顯著改變是引入了視圖類,這樣在MVC模式實現上更為完整。相應的,相關展現層附屬類就由新的視圖類來接手管理,比如theme:Yii::app()->theme->baseUrl 應該更新為 Yii::$app->view->theme->baseUrl,或者$this->theme->baseUrl。
3、Yii2引入了資源包的概念,資源引用的方式變化較大。
有兩種方式引入資源,一種是通過assets目錄下的AppAsset類,還有就是通過類似Yii1種的注冊方法。
Yii::app()->getClientScript()方法不再可用,比如想要在頁面中動態注冊JS腳本文件,變動如下:
Yii::app()->getClientScript()->registerScriptFile(‘…’) 修改為 Yii::$app->view->registerJsFile(‘…’),
或者$this->registerJsFile(‘…’)。
4、使用數據庫
比如查詢知道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() 方法,直接查詢結果為數組:
User::find()->where(‘status=:status’,[‘:staus’=>$status])->asArray()->all();
如果是初學者的話,建議直接學習yii2。