|
- <?php
-
- namespace Lc\SovBundle\Controller;
-
- use Doctrine\ORM\EntityManagerInterface;
- use Knp\Component\Pager\PaginatorInterface;
- use Lc\SovBundle\Container\ComponentContainer;
- use Lc\SovBundle\Container\File\FileContainer;
- use Lc\SovBundle\Container\Newsletter\NewsletterContainer;
- use Lc\SovBundle\Container\Reminder\ReminderContainer;
- use Lc\SovBundle\Container\Setting\SiteSettingContainer;
- use Lc\SovBundle\Container\Site\NewsContainer;
- use Lc\SovBundle\Container\Site\PageContainer;
- use Lc\SovBundle\Container\Site\SiteContainer;
- use Lc\SovBundle\Container\Ticket\TicketContainer;
- use Lc\SovBundle\Container\Ticket\TicketMessageContainer;
- use Lc\SovBundle\Container\User\GroupUserContainer;
- use Lc\SovBundle\Container\User\UserContainer;
- use Lc\SovBundle\Solver\Setting\SettingSolver;
- use Lc\SovBundle\Translation\FlashBagTranslator;
- use Lc\SovBundle\Translation\TranslatorAdmin;
- use Psr\Log\LoggerInterface;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController as SfAbstractController;
- use Symfony\Component\EventDispatcher\EventDispatcherInterface;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\RequestStack;
- use Symfony\Component\HttpFoundation\Session\SessionInterface;
- use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
- use Symfony\Component\Security\Core\Security;
- use Symfony\Contracts\Translation\TranslatorInterface;
- use Twig\Environment;
-
- class AbstractController extends SfAbstractController
- {
-
- //TODO doit utiiliser un controller trait, et la totalité des méthodes de controller seront dans le trait
-
- public static function getSubscribedServices()
- {
- return array_merge(
- parent::getSubscribedServices(),
- [
- Environment::class => Environment::class,
- Security::class => Security::class,
- EntityManagerInterface::class => EntityManagerInterface::class,
- UrlGeneratorInterface::class => UrlGeneratorInterface::class,
- SessionInterface::class => SessionInterface::class,
- PaginatorInterface::class => PaginatorInterface::class,
- RequestStack::class => RequestStack::class,
- EventDispatcherInterface::class => EventDispatcherInterface::class,
- LoggerInterface::class => LoggerInterface::class,
- TranslatorInterface::class => TranslatorInterface::class,
- TranslatorAdmin::class => TranslatorAdmin::class,
- FlashBagTranslator::class => FlashBagTranslator::class,
- SettingSolver::class => SettingSolver::class,
- ComponentContainer::class => ComponentContainer::class,
- FileContainer::class => FileContainer::class,
- NewsletterContainer::class => NewsletterContainer::class,
- ReminderContainer::class => ReminderContainer::class,
- NewsContainer::class => NewsContainer::class,
- PageContainer::class => PageContainer::class,
- SiteContainer::class => SiteContainer::class,
- TicketContainer::class => TicketContainer::class,
- TicketMessageContainer::class => TicketMessageContainer::class,
- GroupUserContainer::class => GroupUserContainer::class,
- UserContainer::class => UserContainer::class,
- SiteSettingContainer::class => SiteSettingContainer::class,
- ]
- );
- }
-
-
- public function addFlashTranslator(string $type, $translationKeyName, $translationEntityName = null, $translationParam = array()):void
- {
- if ($translationEntityName === null && method_exists($this, 'getTranslationEntityName')) {
- $translationEntityName = $this->getTranslationEntityName();
- }
- $this->get(FlashBagTranslator::class)->add($type, $translationKeyName, $translationEntityName, $translationParam);
- }
-
-
- public function getReferer(Request $request): ?string
- {
- return $request->headers->get('referer');
- }
-
- public function getTemplating(): Environment
- {
- return $this->get(Environment::class);
- }
-
- public function getEntityManager(): EntityManagerInterface
- {
- return $this->get(EntityManagerInterface::class);
- }
-
- public function getRouter(): UrlGeneratorInterface
- {
- return $this->get(UrlGeneratorInterface::class);
- }
-
- public function getSession(): SessionInterface
- {
- return $this->get(SessionInterface::class);
- }
-
- public function getSecurity(): Security
- {
- return $this->get(Security::class);
- }
-
- public function getPaginator(): PaginatorInterface
- {
- return $this->get(PaginatorInterface::class);
- }
-
- public function getRequestStack(): RequestStack
- {
- return $this->get(RequestStack::class);
- }
-
- public function getEventDispatcher(): EventDispatcherInterface
- {
- return $this->get(EventDispatcherInterface::class);
- }
-
- public function getTranslator(): TranslatorInterface
- {
- return $this->get(TranslatorInterface::class);
- }
-
- public function getTranslatorAdmin(): TranslatorAdmin
- {
- return $this->get(TranslatorAdmin::class);
- }
-
- public function getLogger(): LoggerInterface
- {
- return $this->get(LoggerInterface::class);
- }
-
- public function getSettingSolver(): SettingSolver
- {
- return $this->get(SettingSolver::class);
- }
-
- public function getSettingValue($entity, $settingName)
- {
- return $this->getSettingSolver()->getSettingValue($entity, $settingName);
- }
-
- public function getComponentContainer(): ComponentContainer
- {
- return $this->get(ComponentContainer::class);
- }
-
- public function getFileContainer(): FileContainer
- {
- return $this->get(FileContainer::class);
- }
-
- public function getNewsletterContainer(): NewsletterContainer
- {
- return $this->get(NewsletterContainer::class);
- }
-
- public function getReminderContainer(): ReminderContainer
- {
- return $this->get(ReminderContainer::class);
- }
-
- public function getNewsContainer(): NewsContainer
- {
- return $this->get(NewsContainer::class);
- }
-
- public function getPageContainer(): PageContainer
- {
- return $this->get(PageContainer::class);
- }
-
- public function getSiteContainer(): SiteContainer
- {
- return $this->get(SiteContainer::class);
- }
-
- public function getTicketContainer(): TicketContainer
- {
- return $this->get(TicketContainer::class);
- }
-
- public function getTicketMessageContainer(): TicketMessageContainer
- {
- return $this->get(TicketMessageContainer::class);
- }
-
- public function getGroupUserContainer(): GroupUserContainer
- {
- return $this->get(GroupUserContainer::class);
- }
-
- public function getUserContainer(): UserContainer
- {
- return $this->get(UserContainer::class);
- }
-
- public function getSiteSettingContainer(): SiteSettingContainer
- {
- return $this->get(SiteSettingContainer::class);
- }
- }
|