/** * * @param unknown $user * @return ZfJoacubUsersOnline\Entity\Register */ protected function getOrRegister($user) { if (isset($this->userRegister[$user->getId()])) { return $this->userRegister[$user->getId()]; } $em = $this->sl->get('zf_joacub_users_online_doctrine_em'); $em instanceof EntityManager; $repo = $em->getRepository('ZfJoacubUsersOnline\\Entity\\Register'); $registerEntity = $repo->findOneBy(array('user' => $user)); if (!$registerEntity) { $registerEntity = new Register(); $registerEntity->setUser($user); $auth = $this->sl->get('zfcuser_auth_service'); if ($auth->hasIdentity()) { if ($auth->getIdentity()->getId() == $user->getId()) { $registerEntity->setLastConnect(new \DateTime('now')); } else { $registerEntity->setLastConnect($user->getCreated()); } } $registerEntity->setLastConnect($user->getCreated()); $em->persist($registerEntity); $em->flush($registerEntity); } $this->userRegister[$user->getId()] = $registerEntity; return $registerEntity; }
public function indexAction() { $em = $this->getServiceLocator()->get('zf_joacub_users_online_doctrine_em'); $em instanceof EntityManager; if ($this->zfcUserAuthentication()->hasIdentity()) { $registerRepo = $em->getRepository('ZfJoacubUsersOnline\\Entity\\Register'); $user = $this->zfcUserAuthentication()->getIdentity(); $userRegister = $registerRepo->findOneBy(array('user' => $user)); if (!$userRegister) { $userRegister = new Register(); $userRegister->setUser($user); } $userRegister->setLastConnect(new \DateTime('now')); $em->persist($userRegister); $em->flush($userRegister); return new JsonModel(array(time())); } return new JsonModel(array('no user')); }