/**
  * 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);
                 }
             }
         }
     }
 }
Example #2
0
 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);
 }
Example #3
0
<?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');