CRM-18231 Remove need for define statement and replace with new setting not settable...
authorSeamus Lee <seamuslee001@gmail.com>
Mon, 4 Sep 2017 01:31:10 +0000 (11:31 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Mon, 11 Sep 2017 07:41:29 +0000 (17:41 +1000)
Switch to getMandatory function as per Tim's comment

CRM/Admin/Form/Setting/Debugging.php
CRM/Core/Config.php
templates/CRM/common/civicrm.settings.php.template
tests/phpunit/CRM/Core/BAO/SettingTest.php

index 5a065c567ad36ef337bf8c4a7e15673d0186df11..40d95b0ee7bd121994d69f214ffdde10b54759a4 100644 (file)
@@ -54,8 +54,7 @@ class CRM_Admin_Form_Setting_Debugging extends CRM_Admin_Form_Setting {
     }
 
     parent::buildQuickForm();
-
-    if (defined('CIVICRM_ENVIRONMENT')) {
+    if (Civi::settings()->getMandatory('environment') !== NULL) {
       $element = $this->getElement('environment');
       $element->freeze();
       CRM_Core_Session::setStatus(ts('The environment settings have been disabled because it has been overridden in the settings file.'), ts('Environment settings'), 'info');
index 2a61e5eb30a43c745f723c559c74974a9ae8772d..bc567631b88952116778aebe9224fba63d9d9efa 100644 (file)
@@ -274,14 +274,7 @@ class CRM_Core_Config extends CRM_Core_Config_MagicMerge {
       $environment = $env;
     }
     if ($reset || empty($environment)) {
-      if (defined('CIVICRM_ENVIRONMENT')) {
-        $environment = CIVICRM_ENVIRONMENT;
-        global $civicrm_setting;
-        $civicrm_setting[CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME]['environment'] = $environment;
-      }
-      else {
-        $environment = Civi::settings()->get('environment');
-      }
+      $environment = Civi::settings()->get('environment');
     }
     if (!$environment) {
       $environment = 'Production';
index 1c3b64f0fd28234addf5dfdba7aee54ac66b1dcf..b221f33f6e3bc840e59a717bae078d212287e790 100644 (file)
@@ -313,11 +313,10 @@ if (!defined('CIVICRM_DOMAIN_ID')) {
  * Note the setting here must be value from the option group 'Environment', 
  * (see Administration > System Settings > Option Groups, Options beside Environment) 
  * which by default has three option values: 'Production', 'Staging', 'Development'. 
- * NB: defining a value from CIVICRM_ENVIRONMENT here prevents it from being set 
+ * NB: defining a value for environment here prevents it from being set
  * via the browser. 
  */ 
-
-// define( 'CIVICRM_ENVIRONMENT', 'Production' ); 
+// $civicrm_setting[CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME]['environment'] = 'Production'; 
 
 /**
  * Settings to enable external caching using a cache server.  This is an
index bb1cad2c7ba2c2e65deee40bcf237a2903745d20..4004fbb7dc0bc63b549e5d6062adfcb5cafc9374 100644 (file)
@@ -188,8 +188,9 @@ class CRM_Core_BAO_SettingTest extends CiviUnitTestCase {
     CRM_Core_BAO_Setting::setItem('Staging', CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME, 'environment');
     $values = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME, 'environment');
     $this->assertEquals('Staging', $values);
-
-    define('CIVICRM_ENVIRONMENT', 'Development');
+    global $civicrm_setting;
+    $civicrm_setting[CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME]['environment'] = 'Development';
+    Civi::service('settings_manager')->useMandatory();
     $environment = CRM_Core_Config::environment();
     $this->assertEquals('Development', $environment);
   }