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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值