yii1和yii2的區別有哪些?

yii是一個高性能的php5的web應用程序開發框架。通過一個簡單的命令行工具 yiic 可以快速創建一個web應用程序的代碼框架,開發者可以在生成的代碼框架基礎上添加業務邏輯,以快速完成應用程序的開發。

yii1和yii2的區別有哪些?

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。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享