欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

CakePHP: tips on ssl, mysql load balance, mas

程序员文章站 2022-05-21 17:55:13
...
1. CakePHP Master/Slave
*) add default(slave as for query) setting in database.php, and master for saving
*) define a new replicate behavior

class ReplicationBehavior extends ModelBehavior {

public function beforeSave($Model) {
$Model->useDbConfig = master;
}

public function afterSave($Model) {
$Model->useDbConfig = default;
}

public function setServer($Model, $server) {
$Model->__backupConfig = $Model->useDbConfig;
$Model->useDbConfig = $server;
}

public function afterFind($Model) {
if (!empty($Model->__backupConfig)) {
$this->useDbConfig = $Model->__backupConfig;
}
$Model->__backupConfig = null;
}

public function save($data = null, $validate = true, $whitelist = array()) {
$this->Replication->beforeSave($this);
return parent::save($data, $validate, $whitelist);
}

}

?>
*) set $actAs to have replicate behavior in your base app model
$actAs = array(Replicate);

*) call the setServer method in your controller to determine which database you want to use for instant query after save
if ($this->Deal->saveAll($this->data, array(validate=>first))) {
$this->Deal->setServer(master);
$deal = $this->Deal->find(first,array(
conditions => array(slug => $this->data[Deal][slug]),
fields => array(id)
));

2. how to use xhprof (a php benchmark tool developed by facebook)
http://techportal.ibuildings.com/2009/12/01/profiling-with-xhprof/

3. MySQL load-balancing
mysql-load-balancing-proxy-trafficscript">http://www.zeus.com/community/articles/building-mysql-load-balancing-proxy-trafficscript

4. ssl
consolidate secure operations to single domain: https://lang.secure.jigocity.com
keep track of referer links in http header
redirect back to the original referer when done