Development vs. Production

EnvironmentTop of Page

The Environment gives ability to have up to 3 different settings, depending where Ionize is running.

The environment is defined by the constant "ENVIRONMENT", set in the file : /index.php.

They are 3 running environments available :

  • Development : Displays all PHP errors
  • Test : Don't displays PHP errors
  • Production : Don't displays PHP errors

After one fresh install, Ionize is in "Development" mode.

Usually, 2 modes can be enough, but if you need to have differences between test and production, you can edit /index.php from line 30.

Error logTop of Page

After installation, internal error logging is set to "2", which means debug and error information are logged in the files /application/logs/log-YYYY-MM-DD.php.

To disable the error loggin, edit the file /application/config.php, line 192 :

$config['log_threshold'] = 0;

Database configurationTop of Page

If you wish to use the ENVIRONMENT constant to define one database configuration per environment, edit the file /application/config/database.php :

$active_group = 'default';
$active_record = TRUE;
$db['default'] = array();
switch (ENVIRONMENT)
{
    // Local server
    case 'development':
        $db['default']['hostname'] = 'localhost';
        $db['default']['username'] = 'my_local_user';
        $db['default']['password'] = 'paSSwoRd';
        $db['default']['database'] = 'ionize_local';
        $db['default']['dbdriver'] = 'mysql';
        $db['default']['dbprefix'] = '';
        $db['default']['swap_pre'] = '';
        $db['default']['pconnect'] = TRUE;
        $db['default']['db_debug'] = TRUE;
        $db['default']['cache_on'] = FALSE;
        $db['default']['cachedir'] = '';
        $db['default']['char_set'] = 'utf8';
        $db['default']['dbcollat'] = 'utf8_unicode_ci';
        break;

    // Test / server
    case 'testing':
        $db['default']['hostname'] = 'test.mydomain.com';
        $db['default']['username'] = 'uSer';
        $db['default']['password'] = 'paSSwoRd';
        $db['default']['database'] = 'ionize_test';
        $db['default']['dbdriver'] = 'mysql';
        $db['default']['dbprefix'] = '';
        $db['default']['swap_pre'] = '';
        $db['default']['pconnect'] = TRUE;
        $db['default']['db_debug'] = TRUE;
        $db['default']['cache_on'] = FALSE;
        $db['default']['cachedir'] = '';
        $db['default']['char_set'] = 'utf8';
        $db['default']['dbcollat'] = 'utf8_unicode_ci';
        break;

    // Production server
    case 'production':
        $db['default']['hostname'] = 'mydomain.com';
        $db['default']['username'] = 'uSer';
        $db['default']['password'] = 'paSSwoRd';
        $db['default']['database'] = 'ionize_prod';
        $db['default']['dbdriver'] = 'mysql';
        $db['default']['dbprefix'] = '';
        $db['default']['swap_pre'] = '';
        $db['default']['pconnect'] = TRUE;
        $db['default']['db_debug'] = FALSE;
        $db['default']['cache_on'] = FALSE;
        $db['default']['cachedir'] = '';
        $db['default']['char_set'] = 'utf8';
        $db['default']['dbcollat'] = 'utf8_unicode_ci';
        break;

    default:
        exit('The application environment is not set correctly.');
}


The file /application/config/database.alternative.php gives you one good example.

If you use this feature, never use the backend to save the database configuration : Doing this will override /application/config/database.php with only one configuration.