Yii是一個高性能的,適用於開發WEB2.0應用的PHP框架。
Yii是一個基於組件、用於開發大型 Web 應用的 高性能 PHP 框架。Yii 幾乎擁有了所有的特性 ,包括 MVC、DAO/ActiveRecord、I18N/L10N、caching、基於 JQuery 的 AJAX 支持、用戶認證和基於角色的訪問控制、腳手架、輸入驗證、部件、事件、主題化以及 Web 服務等等。Yii 採用嚴格的 OOP 編寫,Yii 使用簡單,非常靈活,具有很好的可擴展性。
現在我將介紹一下Yii的登陸驗證功能:
Yii用戶登陸的流程:
解析url:http://localhost/yiiblog/index.php?r=site/login
找到 SiteController.php下actionLogin方法;
然後渲染視圖文件,顯示登陸頁面;
提交登陸信息後,頁面調用UserIdentity.php來實現用戶登陸驗證。
以下是UserIdentity類文件的驗證函數:
class UserIdentity extends CUserIdentity { public function authenticate() { $users=array( // username => password 'demo'=>'demo', 'admin'=>'admin', ); if(!isset($users[$this->username])) $this->errorCode=self::ERROR_USERNAME_INVALID; else if($users[$this->username]!==$this->password) $this->errorCode=self::ERROR_PASSWORD_INVALID; else $this->errorCode=self::ERROR_NONE; return !$this->errorCode; } }
UserIdentity繼承了CUserIdentity類(位於framework/web/auth下)
Yii通過LoginForm類來調用UserIdentity驗證登陸信息,並且通過Yii::app()->user(CWebUser的實例:位於framework/web/auth下)來實現並存儲登陸信息。以後我們可以通過Yii::app()->user來訪問用戶相關信息。