Sivo 悉见

15.3 合并字段缓存

匿名 · 更新于 2013/12/30

默认情况下,字段缓存是自动生成的,在开发完成之后,基本上数据库的变动变得比较少,因此可以考虑合并字段缓存到对应的模型类,这样能够减少每次读取字段缓存的IO开销。
合并的方法是在Runtime/Data/_fields下面找到对应的字段缓存文件,例如,User模型的字段缓存文件中的内容可能是:

  1. return array (
  2.     0 => 'id', 
  3.     1 => 'create_time',
  4.     2 => 'update_time', 
  5.     3 => 'status', 
  6.     4 => 'account', 
  7.     5 => 'password',
  8.     6 => 'nickname', 
  9.     7 => 'email',
  10.     8 => 'remark',
  11.     9 => 'avatar', 
  12.     '_autoinc' => true, 
  13.     '_pk' => 'id', 
  14.  );
把上面这段代码拷贝到UserModel类的开头,设置为fields属性即可:
  1. protected $fields =  array (
  2.     0 => 'id', 
  3.     1 => 'create_time', 
  4.     2 => 'update_time', 
  5.     3 => 'status',
  6.     4 => 'account',
  7.     5 => 'password',
  8.     6 => 'nickname', 
  9.     7 => 'email', 
  10.     8 => 'remark',
  11.     9 => 'avatar', 
  12.     10 => 'max_login',
  13.     11 => 'login_count',
  14.     12 => 'last_login_time',
  15.     13 => 'last_login_ip', 
  16.     '_autoinc' => true, 
  17.     '_pk' => 'id', 
  18.  );
3.1版本以后,字段缓存文件的格式采用JSON格式编码存在,所以不能直接拷贝,需要按照以上格式自己定义fields属性。
注意:如果在某个模型类中进行了多数据库切换操作,请不要合并。