/** * Returns validator list * * @param ConfigFile $cf Config file instance * * @return array */ public static function getValidators(ConfigFile $cf) { static $validators = null; if ($validators !== null) { return $validators; } $validators = $cf->getDbEntry('_validators', array()); if (defined('PMA_SETUP')) { return $validators; } // not in setup script: load additional validators for user // preferences we need original config values not overwritten // by user preferences, creating a new PMA\libraries\Config instance is a // better idea than hacking into its code $uvs = $cf->getDbEntry('_userValidators', array()); foreach ($uvs as $field => $uv_list) { $uv_list = (array) $uv_list; foreach ($uv_list as &$uv) { if (!is_array($uv)) { continue; } for ($i = 1, $nb = count($uv); $i < $nb; $i++) { if (mb_substr($uv[$i], 0, 6) == 'value:') { $uv[$i] = PMA_arrayRead(mb_substr($uv[$i], 6), $GLOBALS['PMA_Config']->base_settings); } } } $validators[$field] = isset($validators[$field]) ? array_merge((array) $validators[$field], $uv_list) : $uv_list; } return $validators; }
/** * Test for ConfigFile::getDbEntry * * @return void * @test */ public function testGetDbEntry() { $cfg_db = array(); include './libraries/config.values.php'; // verify that $cfg_db read from config.values.php is valid $this->assertGreaterThanOrEqual(20, count($cfg_db)); $this->assertEquals($cfg_db['Servers'][1]['port'], $this->object->getDbEntry('Servers/1/port')); $this->assertNull($this->object->getDbEntry('no such key')); $this->assertEquals(array(1), $this->object->getDbEntry('no such key', array(1))); }