I’m developing a system in CakePHP, using Git as the version control system. I have a working copy in my testing server and another in my production server, both with different databases. Everytime I make changes, I have to change the database configuration so I can test the system. Is there another way to keep two files, with different contents, one in the test and another in the production server? Branches are a good way to go?
Share
I’ve gone for a rather crude but effective technique: In my development environment I have an empty file called ‘environment_development’. In my production environment I have one called ‘environment_PRODUCTION’ (different case for added visual emphasis). My gitignore file is set to ignore both of these.
The front controller of my application (I use the Kohana framework, but I’m presuming CakePHP has something similar) checks for the presence of these files and sets an IN_PRODUCTION constant appropriately. The rest of the code (database configuration, error handling etc.) can check the value of this constant and alter behaviour as required.
I used to use the $_SERVER[‘SERVER_NAME’] check, but this method has the following advantages: