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

你可能感兴趣的:(mysql,function,ssl,cakephp,behavior,slug)