/** * Get Instance of Account object. * * @param Application $application * * @return Account */ public static function getInstance(Application $application) { if (empty(self::$instance)) { self::$instance = new self($application); } if (self::$instance->isAuthorized()) { $session = $application['session']; $authenticatedEmail = $session->get('account.authorized.email'); $entityManager = $application['entityManager']; $authenticatedUser = $entityManager->getRepository('Models\\User')->findOneBy(['email' => $authenticatedEmail]); if (empty($authenticatedUser)) { self::$instance->logout(); } else { self::$instance->authenticate($authenticatedUser); } } return self::$instance; }