Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

Environments


Reply

2 Posts   1487 Views

Avatar
Ingo

1 May 2007 at 3:24pm Forum Moderator, 801 Posts

hey guys,

i've just started using SS on my local machine, and have some problems how to write my _config.php. currently, we do some custom code for switching between configs, based on path, e.g. "if dir==/ischommer".

however:
- switches for my local environment shouldn't appear in _config.php (might collide with other local dev-environments)
- not everybody wants their local database-passwords flying around in svn
- you still might want some code shared between configs
- in more complicated scenarios, we might need more than one _config.php (e.g. for NZCT I had two different _config.php for the server at their offices and manu)

has anybody already put some thought into formalizing this - or has come up with some best-practices? while most of the stuff can be achieved by custom if/switch-statements in the _config.php, it would be nice to have some kind of "environment-switcher" that is able to handle different configurations, triggered by flags which are not under SVN.

Avatar
Sam

2 May 2007 at 8:59pm (Last edited: 2 May 2007 11:10pm), Administrator, 680 Posts

I haven't done anything myself, but here's an idea:

If you have a folder ~/Sites, with subfolders for each of your projects.

Make ~/Sites/_env_config.php:

<?php

$databaseConfig['username'] = 'XXX';
$databaseConfig['password'] = 'XXX';

Director::set_environment_type("dev");
Debug::sendLiveErrorsTo("yourname@silverstripe.com");

// etc

?>

Then, in your application's _config.php you could have something like:

if(file_exists("../../_env_config.php")) include("../../_env_config.php");

Put it in after databaseConfig is defined, so that the u/p can be overridden properly.