Yii:共同切入点

时间:2014-06-06 17:24:57

标签: php yii statistics entry-point

我想记录今天访问过该网站的用户。为此,我必须在网站上的任何页面处理用户访问。

什么是常见的入口点(代码,在任何访问任何页面时都会执行)?

3 个答案:

答案 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

您可以附加逻辑的onBeginRequestonEndRequest个事件:

示例(在适当的文件中,index.php / custom loader脚本,简单)

Yii::app()->onBeginRequest = function(CEvent $event) { handle_event($event); };

或者在配置中为该事件附加自定义行为:

'behaviors' => array(
    'onbeginRequest' => array(
        'class' => 'application.components.AnalyticsBehaviour',
    )
)

并处理行为。