Răsfoiți Sursa

renaming config file to make updates easier, resolving #50

El RIDO 10 ani în urmă
părinte
comite
176dff3b70
4 a modificat fișierele cu 20 adăugiri și 6 ștergeri
  1. 4 2
      INSTALL.md
  2. 0 0
      cfg/conf.ini.sample
  3. 9 4
      lib/configuration.php
  4. 7 0
      tst/configuration.php

+ 4 - 2
INSTALL.md

@@ -16,8 +16,10 @@ and extract it in your web hosts folder were you want to install your ZeroBin in
 
 ### Configuration
 
-In the file `cfg/conf.ini` you can configure ZeroBin. The config file is divided
-into multiple sections, which are enclosed in square brackets.
+In the file `cfg/conf.ini` you can configure ZeroBin. A `cfg/conf.ini.sample` 
+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
 limit of stored pastes and comments in bytes. The `[traffic]` section lets you

+ 0 - 0
cfg/conf.ini → cfg/conf.ini.sample


+ 9 - 4
lib/configuration.php

@@ -84,10 +84,15 @@ class configuration
      */
     public function __construct()
     {
-        $config = parse_ini_file(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini', 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);
+        $config = array();
+        $configFile = PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini';
+        if (is_readable($configFile))
+        {
+            $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)

+ 7 - 0
tst/configuration.php

@@ -75,6 +75,13 @@ class configurationTest extends PHPUnit_Framework_TestCase
         $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
      * @expectedExceptionCode 2