renaming config file to make updates easier, resolving #50

This commit is contained in:
El RIDO 2015-10-22 21:13:15 +02:00
parent 5a9879623f
commit 176dff3b70
4 changed files with 20 additions and 6 deletions

View File

@ -16,8 +16,10 @@ and extract it in your web hosts folder were you want to install your ZeroBin in
### Configuration ### Configuration
In the file `cfg/conf.ini` you can configure ZeroBin. The config file is divided In the file `cfg/conf.ini` you can configure ZeroBin. A `cfg/conf.ini.sample`
into multiple sections, which are enclosed in square brackets. is provided containing all options on default values. You can copy it to
`cfg/conf.ini` and adapt it as needed. The config file is divided into multiple
sections, which are enclosed in square brackets.
In the `[main]` section you can enable or disable the discussion feature, set the In the `[main]` section you can enable or disable the discussion feature, set the
limit of stored pastes and comments in bytes. The `[traffic]` section lets you limit of stored pastes and comments in bytes. The `[traffic]` section lets you

View File

@ -84,10 +84,15 @@ class configuration
*/ */
public function __construct() public function __construct()
{ {
$config = parse_ini_file(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini', true); $config = array();
foreach (array('main', 'model') as $section) { $configFile = PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini';
if (!array_key_exists($section, $config)) { if (is_readable($configFile))
throw new Exception(i18n::_('ZeroBin requires configuration section [%s] to be present in configuration file.', $section), 2); {
$config = parse_ini_file($configFile, true);
foreach (array('main', 'model') as $section) {
if (!array_key_exists($section, $config)) {
throw new Exception(i18n::_('ZeroBin requires configuration section [%s] to be present in configuration file.', $section), 2);
}
} }
} }
foreach ($this->_defaults as $section => $values) foreach ($this->_defaults as $section => $values)

View File

@ -75,6 +75,13 @@ class configurationTest extends PHPUnit_Framework_TestCase
$this->assertEquals($this->_options, $conf->get(), 'newly generated configuration is correct'); $this->assertEquals($this->_options, $conf->get(), 'newly generated configuration is correct');
} }
public function testHandleMissingConfigFile()
{
@unlink(CONF);
$conf = new configuration;
$this->assertEquals($this->_options, $conf->get(), 'returns correct defaults on missing file');
}
/** /**
* @expectedException Exception * @expectedException Exception
* @expectedExceptionCode 2 * @expectedExceptionCode 2