Newscoop\GimmeBundle\Controller\ArticlesController::getArticle PHP 메소드

getArticle() 개인적인 메소드

private getArticle ( $number, $language, $user )
    private function getArticle($number, $language, $user)
    {
        $em = $this->container->get('em');
        $languageObject = $em->getRepository('Newscoop\\Entity\\Language')->findOneByCode($language);
        // Fetch article
        $articleObj = new \Article($languageObject->getId(), $number);
        if (!$articleObj->exists()) {
            throw new NewscoopException('Article does not exist');
        }
        if (!$articleObj->userCanModify($user)) {
            throw new AccessDeniedException('User cannot modify article.');
        }
        // Only users with a lock on the article can change it.
        if ($articleObj->isLocked() && $user->getUserId() != $articleObj->getLockedByUser()) {
            $lockTime = new \DateTime($articleObj->getLockTime());
            $now = new \DateTime('now');
            $difference = $now->diff($lockTime);
            $ago = $difference->format('%R%H:%I:%S');
            $lockUser = new \User($articleObj->getLockedByUser());
            throw new NewscoopException(sprintf('Article locked by %s (%s ago)', $lockUser->getRealName(), $ago));
        }
        return $articleObj;
    }