コード例 #1
0
 protected function setUp()
 {
     parent::setUp();
     $evm = new EventManager();
     $this->translatableListener = new TranslatableListener();
     $this->translatableListener->setTranslatableLocale('en_us');
     $this->translatableListener->setDefaultLocale('en_us');
     $evm->addEventSubscriber($this->translatableListener);
     $this->getMockSqliteEntityManager($evm);
     $this->populate();
 }
コード例 #2
0
 /**
  * @param EventManager           $manager
  * @param EntityManagerInterface $em
  * @param Reader                 $reader
  */
 public function addSubscribers(EventManager $manager, EntityManagerInterface $em, Reader $reader = null)
 {
     $subscriber = new TranslatableListener();
     $subscriber->setTranslatableLocale($this->application->getLocale());
     $subscriber->setDefaultLocale($this->repository->get('app.locale'));
     $this->addSubscriber($subscriber, $manager, $reader);
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function boot(Application $app)
 {
     if (!isset($app['db.event_manager'])) {
         throw new FatalErrorException('The DoctrineServiceProvider is not registered in this application');
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_SLUGGABLE') === true) {
         $listener = new SluggableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_TREE') === true) {
         $listener = new TreeListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_LOGGABLE') === true) {
         $listener = new LoggableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_TIMESTAMPABLE') === true) {
         $listener = new TimestampableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_TRANSLATABLE') === true) {
         $listener = new TranslatableListener();
         if (!isset($app['translator'])) {
             throw new FatalErrorException('The TranslationServiceProvider is not registered in this application');
         }
         $listener->setTranslatableLocale($app['translator']->getLocale());
         $listener->setDefaultLocale($app['translator']->getLocale());
         $app['db.event_manager']->addEventSubscriber($listener);
     }
     if (Environment::get('DOCTRINE_EXTENSION_ENABLE_SORTABLE') === true) {
         $listener = new SortableListener();
         $app['db.event_manager']->addEventSubscriber($listener);
     }
 }
 public function create()
 {
     $listener = new TranslatableListener();
     $listener->setDefaultLocale($this->defaultLocale);
     $listener->setTranslatableLocale($this->locale);
     return $listener;
 }
コード例 #5
0
 public function register(Container $c)
 {
     $c['doctrine_extensions.translatable.listener'] = function ($c) {
         $listener = new TranslatableListener();
         $listener->setTranslatableLocale($c['locale']);
         $listener->setDefaultLocale($c['locale']);
         $listener->setAnnotationReader($c['annotation.reader']);
         return $listener;
     };
 }
コード例 #6
0
ファイル: Database.php プロジェクト: fraym/core
 /**
  * @return $this
  * @throws \Exception
  */
 public function setUpTranslateable()
 {
     $defaultLocale = $this->locale->getDefaultLocale();
     if ($defaultLocale === null) {
         throw new \Exception('Default locale not found! Fraym is not correctly installed, please reinstall Fraym.');
     }
     $this->translatableListener = new \Gedmo\Translatable\TranslatableListener();
     $this->translatableListener->setDefaultLocale($defaultLocale->locale);
     $this->translatableListener->setAnnotationReader($this->cachedAnnotationReader);
     $this->translatableListener->setTranslationFallback(true);
     $this->translatableListener->setPersistDefaultLocaleTranslation(true);
     $this->eventManager->addEventSubscriber($this->translatableListener);
     return $this;
 }