Beispiel #1
0
 /**
  * @covers PsUtil::mergeIniFiles
  */
 public function testMergeIniFiles()
 {
     $this->assertEquals(array_merge(array(1, 2, 3), array(2, 3, 4)), array(1, 2, 3, 2, 3, 4));
     $this->assertEquals(array_merge(array('a' => 1, 'b' => 2), array('b' => 3, 'c' => 4)), array('a' => 1, 'b' => 3, 'c' => 4));
     $this->assertEquals(array_merge(array('a' => 1, 'd' => 1, 2, 'b' => 2, 4), array('b' => 3, 'c' => 4)), array('a' => 1, 'd' => 1, 2, 'b' => 3, 4, 'c' => 4));
     for ($i = 1; $i <= 3; ++$i) {
         $this->assertEquals(IniFilesTestHelper::di($i)->parseAsIni(true), IniFilesTestHelper::arr($i, true));
         $this->assertEquals(IniFilesTestHelper::di($i)->parseAsIni(false), IniFilesTestHelper::arr($i, false));
     }
     //1+2
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(1)->parseAsIni(), IniFilesTestHelper::di(2)->parseAsIni()), array('section1' => array('p1' => 'v1-2', 'p2' => 'v2-2'), 'section2' => array('p2' => 'v2-2', 'p3' => 'v3-2'), 'section3' => array('k' => '2', 'arr' => array('1-1', '2-1', '3-1', '1-2', '2-2', '3-2')), 'section4' => array('arr' => array('a' => 'a-2', 'b' => 'b-2', 'c' => 'c-2'))));
     //3+2+1
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(3)->parseAsIni(), IniFilesTestHelper::di(2)->parseAsIni(), IniFilesTestHelper::di(1)->parseAsIni()), array('section1' => array('p1' => 'v1-1', 'p2' => 'v2-1'), 'section2' => array('p2' => 'v2-1', 'p3' => 'v3-1'), 'section3' => array('k' => '1', 'arr' => array('1-3', '2-3', '3-3', '1-2', '2-2', '3-2', '1-1', '2-1', '3-1')), 'section4' => array('arr' => array('a' => 'a-1', 'b' => 'b-1', 'c' => 'c-1'))));
     //1+2+3
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(1)->parseAsIni(), IniFilesTestHelper::di(2)->parseAsIni(), IniFilesTestHelper::di(3)->parseAsIni()), array('section1' => array('p1' => 'v1-3', 'p2' => 'v2-3'), 'section2' => array('p2' => 'v2-3', 'p3' => 'v3-3'), 'section3' => array('k' => '3', 'arr' => array('1-1', '2-1', '3-1', '1-2', '2-2', '3-2', '1-3', '2-3', '3-3')), 'section4' => array('arr' => array('a' => 'a-3', 'b' => 'b-3', 'c' => 'c-3'))));
     //1+3+2
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(1)->parseAsIni(), IniFilesTestHelper::di(3)->parseAsIni(), IniFilesTestHelper::di(2)->parseAsIni()), array('section1' => array('p1' => 'v1-2', 'p2' => 'v2-2'), 'section2' => array('p2' => 'v2-2', 'p3' => 'v3-2'), 'section3' => array('k' => '2', 'arr' => array('1-1', '2-1', '3-1', '1-3', '2-3', '3-3', '1-2', '2-2', '3-2')), 'section4' => array('arr' => array('a' => 'a-2', 'b' => 'b-2', 'c' => 'c-2'))));
     //5+6
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(5)->parseAsIni(), IniFilesTestHelper::di(6)->parseAsIni()), array('keys' => array('k1' => '1', 'k2' => '2', 'k3' => '2', 'k4' => '2'), 'array-idx' => array('arr' => array('1', '2', '3', '3', '4', '5')), 'array-asc' => array('arr' => array('a' => '1', 'b' => '3', 'c' => '4', 'd' => '5'))));
     //5+6+7
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(5)->parseAsIni(), IniFilesTestHelper::di(6)->parseAsIni(), IniFilesTestHelper::di(7)->parseAsIni()), array('keys' => array('k1' => '1', 'k2' => '2', 'k3' => '3', 'k4' => '3', 'k5' => '3'), 'array-idx' => array('arr' => array('1', '2', '3', '3', '4', '5', '5', '6', '7')), 'array-asc' => array('arr' => array('a' => '1', 'b' => '3', 'c' => '5', 'd' => '6', 'e' => '7'))));
     //1+2+3+5+6+7
     $this->assertEquals(PsUtil::mergeIniFiles(IniFilesTestHelper::di(1)->parseAsIni(), IniFilesTestHelper::di(2)->parseAsIni(), IniFilesTestHelper::di(3)->parseAsIni(), IniFilesTestHelper::di(5)->parseAsIni(), IniFilesTestHelper::di(6)->parseAsIni(), IniFilesTestHelper::di(7)->parseAsIni()), array('section1' => array('p1' => 'v1-3', 'p2' => 'v2-3'), 'section2' => array('p2' => 'v2-3', 'p3' => 'v3-3'), 'section3' => array('k' => '3', 'arr' => array('1-1', '2-1', '3-1', '1-2', '2-2', '3-2', '1-3', '2-3', '3-3')), 'section4' => array('arr' => array('a' => 'a-3', 'b' => 'b-3', 'c' => 'c-3')), 'keys' => array('k1' => '1', 'k2' => '2', 'k3' => '3', 'k4' => '3', 'k5' => '3'), 'array-idx' => array('arr' => array('1', '2', '3', '3', '4', '5', '5', '6', '7')), 'array-asc' => array('arr' => array('a' => '1', 'b' => '3', 'c' => '5', 'd' => '6', 'e' => '7'))));
 }
Beispiel #2
0
 /**
  * Метод загружает все группы настроек
  */
 public static function getIni($scope = ENTITY_SCOPE_ALL)
 {
     $config = self::getConfigName();
     if (!array_key_exists($config, self::$INI)) {
         $LOGGER = PsLogger::inst(__CLASS__);
         $sdkDi = self::getIniDi(ENTITY_SCOPE_SDK);
         $projDi = self::getIniDi(ENTITY_SCOPE_PROJ);
         self::$INI[$config] = array();
         self::$INI[$config][ENTITY_SCOPE_SDK] = $sdkDi->parseAsIni(true);
         self::$INI[$config][ENTITY_SCOPE_PROJ] = to_array($projDi->parseAsIni(true, false));
         self::$INI[$config][ENTITY_SCOPE_ALL] = PsUtil::mergeIniFiles(self::$INI[$config][ENTITY_SCOPE_SDK], self::$INI[$config][ENTITY_SCOPE_PROJ]);
         if ($LOGGER->isEnabled()) {
             foreach (self::$INI[$config] as $iniScope => $iniProps) {
                 $LOGGER->info('{} [{}]:', $config, $iniScope);
                 $LOGGER->info(print_r($iniProps, true));
                 $LOGGER->info();
             }
         }
     }
     check_condition(array_key_exists($scope, self::$INI[$config]), "Unknown entity scope: {$scope}");
     return self::$INI[$config][$scope];
 }
Beispiel #3
0
 /**
  * Метод загружает все группы настроек
  */
 public static function getIni($scope = ENTITY_SCOPE_ALL)
 {
     $config = self::getConfigName();
     if (!array_key_exists($config, self::$INI)) {
         $sdkDi = self::getIniDi(ENTITY_SCOPE_SDK);
         $projDi = self::getIniDi(ENTITY_SCOPE_PROJ);
         self::$INI[$config] = array();
         self::$INI[$config][ENTITY_SCOPE_SDK] = $sdkDi->parseAsIni(true);
         self::$INI[$config][ENTITY_SCOPE_PROJ] = to_array($projDi->parseAsIni(true, false));
         self::$INI[$config][ENTITY_SCOPE_ALL] = PsUtil::mergeIniFiles(self::$INI[$config][ENTITY_SCOPE_SDK], self::$INI[$config][ENTITY_SCOPE_PROJ]);
         //Экземпляр логгера должен быть создан именно здесь - после того, как был наполнен массив параметров
         //TODO - нельзя здесь использовать логгер. Можно вывести в FileLogWriter.
         /*
          $LOGGER = PsLogger::inst(__CLASS__);
         
          if ($LOGGER->isEnabled()) {
          foreach (self::$INI[$config] as $iniScope => $iniProps) {
          $LOGGER->info('{} [{}]:', $config, $iniScope);
          $LOGGER->info(print_r($iniProps, true));
          $LOGGER->info();
          }
          }
         */
     }
     check_condition(array_key_exists($scope, self::$INI[$config]), "Unknown entity scope: {$scope}");
     return self::$INI[$config][$scope];
 }