<?phpnamespace AvenueAdminBundle\Controller;use AvenueAdminBundle\Document\Config;use AvenueAdminBundle\Mail\Mail;use Psr\Log\LoggerInterface;use Doctrine\ODM\MongoDB\DocumentManager;use Symfony\Component\Security\Core\Security;use Doctrine\ODM\MongoDB\Query\Builder;use Doctrine\ODM\MongoDB\Repository\DocumentRepository;abstract class BaseController extends \Symfony\Bundle\FrameworkBundle\Controller\AbstractController{ /** * @var DocumentManager */ private $dm; private $logger; /** * @return LoggerInterface */ public function getLogger() { return $this->logger; } /** * @param LoggerInterface $logger * @required */ public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } /** * @return DocumentManager */ public function getDocumentManager() { return $this->dm; } /** * @param DocumentManager $dm * @required */ public function setDocumentManager(DocumentManager $dm): void { $this->dm = $dm; } /** * @param $className * @return \Doctrine\Common\Persistence\ObjectRepository|DocumentRepository */ protected function getDocumentRepository($className) { return $this->dm->getRepository($className); } /** * @param $className * @return Builder */ protected function getQueryBuilder($className) { return $this->getDocumentRepository($className)->createQueryBuilder(); } /** * @return \Twig\Environment */ protected function getTwig() { return $this->container->get('twig'); } /** * @param string $seoTitle * @param string $seoDescription * @param string $seoKeywords */ protected function setSeoVariables($seoTitle, $seoDescription = '', $seoKeywords = '') { $twig = $this->getTwig(); $twig->addGlobal('seoTitle', $seoTitle); $twig->addGlobal('seoDescription', $seoDescription); $twig->addGlobal('seoKeywords', $seoKeywords); } private $mail; /** * @required * @param Mail $mail */ public function setMail(Mail $mail) { $this->mail = $mail; } public function getMail(): Mail { return $this->mail; }}