我想记录今天访问过该网站的用户。为此,我必须在网站上的任何页面处理用户访问。
什么是常见的入口点(代码,在任何访问任何页面时都会执行)?
答案 0 :(得分:4)
另外你可以创建类BaseController扩展CController,并使用init方法。例如:
class BaseController extends CController
{
public function init()
{
$this->loggedUserId = Yii::app()->user->getId();
$this->isLogged = !empty($this->loggedUserId);
if ($this->isLogged) {
// some log actions
}
return parent::init();
}
}
答案 1 :(得分:3)
我想如果您想记录哪些用户访问过网站,那么您应该在user
组件(默认为CWebUser
)中实现此功能。您可以扩展此calss并在config中为用户组件指定它:
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
'class'=>'MyWebUser',
),
答案 2 :(得分:1)
假设你在谈论Yii 1.1
您可以附加逻辑的onBeginRequest和onEndRequest个事件:
示例(在适当的文件中,index.php / custom loader脚本,简单)
Yii::app()->onBeginRequest = function(CEvent $event) { handle_event($event); };
或者在配置中为该事件附加自定义行为:
'behaviors' => array(
'onbeginRequest' => array(
'class' => 'application.components.AnalyticsBehaviour',
)
)
并处理行为。