1、$uses和loadModel的使用
在CakePHP1.3.x版本中盡量不使用$uses, 因為這會全部加載使用到的model,占用內存和消耗不必要的時間。
相反在需要使用model的地方,使用loadModel加載它。在不需要關聯數據的情況下,設置其recursive屬性為-1。
另外控制器默認的數據模型不用加載,如果users_controller不用調用loadModel(User),User模型及其關聯模型會自動加載,
在控制器中只要直接使用即可:
$this->User... ;
$this->User->Role...
使用lazy loading技術, 1.3版本有一個lazy_model,把你的app_model的基類換成LazyModel,
將使得model僅在實際調用的地方才會真正加載。
2、eval和requestAction的使用
盡量不要使用eval和requestAction。eval會導致新的腳本解析進程,而requestAction等同於發出一個新的請求。
eval可以用{}或$$類似語法替換,如
case 1
$this->{$this->modelClass}->hasField("country_id");
-----------------------------------------------------------------
case 2
$foo = city;
$$foo = shanghai;
requestAction用view/helper替換
3、Cache
需要分布式數據共享的地方用memcached,本地數據盡量用Apc。在使用到Cache::write/read的地方通過參數指定使用core.php中配置的哪個Cache。