Snook.ca

Ease Deployment with Automatic Server Check

Take a peak at the CakePHP manual on configuration and you'll see that you can have two database configurations (and theoretically more, I suppose). Normally you'd have one for your test environment, and one for your live environment.

The manual recommends setting the $useDbConfig variable to the configuration of choice in each of your models. Certainly, this isn't very practical when it comes to deployment. So why not put it in app_model.php? app_model.php should be in your /app/ folder. If it's not, copy the one from /cake/app_model.php and place it in your /app/ folder. From here you can put in anything that should apply to all models.

class AppModel extends Model {
var $useDbConfig = 'test';
}

But we'd still have to change it every time we upload it to the live server. Instead, have it check which server the request is coming from and set it automatically.

Just change devserver to whatever the hostname is of your dev server and you're off to the races. If you really wanted to keep things separated, you could even place the devserver string in /app/config/core.php

Conversation

Useful. Just one detail : it's recommended to use env('HTTP_HOST') instead of $_SERVER['HTTP_HOST'].

I'm using your script on my site, eveything works perfectly, until I use sanitize...
$sanitizer = new Sanitize();
$sanitizer->clean($this->data); // Don't work
Or
$sanitizer->clean($this->data, $this->MyModel->useDbConfig); // Don't work either