2014-06-06 4 views
1

Я хотел бы зарегистрировать пользователей, которые посетили сайт сегодня. Для этого я должен обрабатывать посещение пользователя на любой странице, которая есть на сайте.Yii: общая точка входа

Что такое общая точка входа (код, который выполняется при любом посещении любой страницы)?

+0

'index.php' что все получает направлено на .htaccess – Pitchinnate

ответ

1

Предполагая, что вы говорите о Yii 1,1

Есть onBeginRequest и onEndRequest события, которые вы могли бы прикрепить вашу логику:

примера (в файле, соответствующий ему, index.php/пользовательский загрузчик скрипт, простой)

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

Или прикрепить пользовательское поведение к этому событию в вашей конфигурации:

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

и ручка в поведении.

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(); 
     } 
    } 

3

Я думаю, если вы хотите, чтобы войти, какие пользователи посетили сайт, то вы должны реализовать эту функцию в user компоненты (CWebUser по умолчанию). Вы можете расширяет эту Calss и указать его в конфигурации для компонента пользователя:

'user'=>array(
    // enable cookie-based authentication 
    'allowAutoLogin'=>true, 
    'class'=>'MyWebUser', 
), 
+0

Ok, но как выполнить код, когда пользователь запрашивает страницу из сайт? –

+0

@DenisKulagin, например, следующим образом: 'public function init() { parent :: init(); // ваш код здесь } 'и метод ведения журнала вызовов там. – Goodnickoff

Смежные вопросы