/** * Copy dmConfig(app_*) to sfConfig(app_*) and dmConfig(app::{current_app}_*) to sfConfig(app_*). * * @param sfEvent $e */ public function listenToContextLoadedEvent(sfEvent $e) { $sf_app_prefix = sfConfig::get('sf_app') . '_'; $sf_app_len = strlen($sf_app_prefix); foreach (dmConfig::getAll() as $key => $val) { if (substr($key, 0, 4) == 'app_') { sfConfig::set($key, $val); } else { if (substr($key, 0, 5) == 'app::') { if (substr($key, 5, $sf_app_len) == $sf_app_prefix) { sfConfig::set('app_' . substr($key, 5 + $sf_app_len), $val); } } } } }
protected function dumpServiceContainer($name, $file) { foreach (array(sfConfig::get('dm_cache_dir'), dirname($file)) as $dir) { if (!is_dir($dir)) { $oldUmask = umask(0); mkdir($dir, 0777); umask($oldUmask); } } $this->loadServiceContainerExtraStuff(); $sc = new sfServiceContainerBuilder(); $configPaths = $this->configuration->getConfigPaths('config/dm/services.yml'); $loader = new sfServiceContainerLoaderFileYaml($sc); $loader->load($configPaths); $loader = new dmServiceContainerLoaderConfiguration($sc, $this->dispatcher); $loader->load(dmConfig::getAll()); /* * Allow listeners of dm.service_container.pre_dump event * to modify the loader */ $sc = $this->dispatcher->filter(new sfEvent($this, 'dm.service_container.pre_dump'), $sc)->getReturnValue(); $dumper = new sfServiceContainerDumperPhp($sc); $baseClass = sfConfig::get('dm_service_container_base_class', 'dm' . ucfirst(sfConfig::get('dm_context_type')) . 'BaseServiceContainer'); file_put_contents($file, $dumper->dump(array('class' => $name, 'base_class' => $baseClass))); $oldUmask = umask(0); @chmod($file, 0777); umask($oldUmask); if (!file_exists($file)) { throw new dmException('Can not write the generated service container to ' . $file); } unset($dumper, $loader, $sc); }
<?php require_once dirname(__FILE__) . '/helper/dmUnitTestHelper.php'; $helper = new dmUnitTestHelper(); $helper->boot(); $t = new lime_test(13); $t->ok(count(dmConfig::getAll()) > 0, 'dmConfig is not empty'); $user = $helper->get('user'); $userCulture = $user->getCulture(); $t->is(dmConfig::getCulture(), $user->getCulture(), 'dmConfig culture is ' . $user->getCulture()); $user->setCulture('en'); $t->is(dmConfig::getCulture(), $user->getCulture(), 'dmConfig culture is ' . $user->getCulture()); $user->setCulture('es'); $t->is(dmConfig::getCulture(), $user->getCulture(), 'dmConfig culture is ' . $user->getCulture()); $user->setCulture($userCulture); $t->is(dmConfig::getCulture(), $user->getCulture(), 'dmConfig culture is ' . $user->getCulture()); $defaultCulture = sfConfig::get('sf_default_culture'); $user->setCulture($defaultCulture); dmDb::query('DmSetting s')->where('s.name = ?', 'test')->delete()->execute(); $t->diag('create new setting'); $setting = dmDb::create('DmSetting', array('name' => 'test', 'description' => 'This is just a test setting', 'value' => $defaultCulture . ' value', 'default_value' => $defaultCulture . ' default', 'type' => 'text', 'group_name' => 'test group'))->saveGet(); dmConfig::load(); try { dmConfig::get('i_do_not_exist_for_sure'); $t->pass('Get non-existant config'); } catch (dmException $e) { $t->fail('Get non-existant config'); } try { dmConfig::set('i_do_not_exist_for_sure', 'value'); $t->pass('Set non-existant config');