cxg518 发表于 2016-10-23 02:21:42

CakePHP: tips on ssl, mysql load balance, master/slave, xhprof benchmark tool

  1. CakePHP Master/Slave
*) add default(slave as for query) setting in database.php, and master for saving
*) define a new replicate behavior
<?php

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
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
  
  5. image compression
http://spriteme.org/
This is a CSS/Image Sprite generation bookmarklet tool

6. asset compression
put all javascript on the bottom of the body part, put all css files to the header
here is the plugin for asset compression.
https://github.com/markstory/asset_compress
页: [1]
查看完整版本: CakePHP: tips on ssl, mysql load balance, master/slave, xhprof benchmark tool