public function start($for = null, $shift = null) { if (!$for) { $model = new SessionModel(); $model->user_id = yii::$app->user->id; $model->shift = $shift; } else { if (!($current = $this->soon())) { return false; } if ($this->soon($for)) { return false; } $model = new UserSession(); $model->session_id = $current->id; $model->user_id = $for->getId(); } $model->start = date('Y-m-d H:i:s'); $return = $model->save(); $sessionEvent = new SessionEvent(['model' => $model]); $this->trigger(self::EVENT_SESSION_START, $sessionEvent); return $return; }