/** * On kernel request. * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { $settings = $this->generalSettingsManager->getSettings(); foreach ($settings as $id => $value) { $prefix = 'ongr_settings_profile_'; if (strpos($id, $prefix) === 0 && $value === true) { $escapedProfile = mb_substr($id, strlen($prefix), null, 'UTF-8'); $profile = UnderscoreEscaper::unescape($escapedProfile); $this->settingsContainer->addProfile($profile); $this->settingsContainer->addProvider($this->buildProvider($profile)); } } }
/** * Test for SettingsContainer get. */ public function testGet() { $pool = new Pool(); $settingsContainer = new SettingsContainer($pool); $provider = new ManagerAwareSettingProvider(); $provider->setManager($this->getManager()); $settingsContainer->addProvider($provider); // First time, it should be loaded from database. $settings = $settingsContainer->get('test'); $this->assertEquals('test1', $settings); // Second time it should be loaded from object itself. $this->getManager()->getConnection()->dropIndex(); $settings = $settingsContainer->get('test'); $this->assertEquals('test1', $settings); $settings = $settingsContainer->get('test2'); $this->assertEquals('test2', $settings); }
/** * Test if get method works. * * @param array $settings * @param string $toGet * @param string $expected * * @dataProvider getTestProvidersData */ public function testGet($settings, $toGet, $expected) { // Loads from provider. $poolMock = $this->getPool(); $providerMock = $this->getProvider('default', $settings); $container = new SettingsContainer($poolMock); $container->addProvider($providerMock); $result = $container->get($toGet); $this->assertEquals($expected, $result, 'failed to get parameter from provider'); // Loads from stored local property. $result2 = $container->get($toGet); $this->assertEquals($expected, $result2, 'failed to get parameter from local property'); // Loads from cached stash. $poolMock3 = $this->getPool(false, $settings); $container3 = new SettingsContainer($poolMock3); $result3 = $container3->get($toGet); $this->assertEquals($expected, $result3, 'failed to get parameter from stash'); }