/** * @param User $user * @return void */ private function initUserSettings(User $user) { $allSettings = $this->manager->getRepository("CoreBundle:UserSetting")->findBy([], ['sort' => 'ASC']); foreach ($allSettings as $setting) { try { $user->getSetting($setting->getName())->setId($setting->getId()); } catch (UserSettingNotFoundException $e) { $user->setSetting($setting); } } $settings = (array) $user->getSettings(); uasort($settings, function (UserSetting $a, UserSetting $b) { return $a->getSort() <=> $b->getSort(); }); $this->container->get('logger')->info('Settings: ' . json_encode(array_keys($settings))); $user->setSettings($settings); }