<?php
namespace 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;
}
}