em = $em; $this->itemsOnPage = $itemsOnPage; $this->feedLimit = $feedLimit; $this->language = $language; $this->readingSpeed = $readingSpeed; $this->actionMarkAsRead = $actionMarkAsRead; $this->listMode = $listMode; $this->requestStack = $requestStack; $this->displayThumbnails = $displayThumbnails; } public static function getSubscribedEvents() { return [ // when a user register using the normal form FOSUserEvents::REGISTRATION_COMPLETED => 'createConfig', // when we manually create a user using the command line // OR when we create it from the config UI FOSUserEvents::USER_CREATED => 'createConfig', ]; } public function createConfig(UserEvent $event) { $language = $this->language; if ($this->requestStack->getMasterRequest()) { $session = $this->requestStack->getMasterRequest()->getSession(); $language = $session->get('_locale', $this->language); } $config = new Config($event->getUser()); $config->setItemsPerPage($this->itemsOnPage); $config->setFeedLimit($this->feedLimit); $config->setLanguage($language); $config->setReadingSpeed($this->readingSpeed); $config->setActionMarkAsRead($this->actionMarkAsRead); $config->setListMode($this->listMode); $config->setDisplayThumbnails($this->displayThumbnails); $this->em->persist($config); $this->em->flush(); } }