用户
 找回密码
 入住 CI 中国社区
搜索
12
返回列表 发新帖
楼主: baiyuxiong
收起左侧

[优化] HMVC最大的缺陷!

  [复制链接]
发表于 2012-3-16 14:19:44 | 显示全部楼层
ihymk 发表于 2010-5-6 12:24
数据共享,可以用静态类特有的机制,将数据注册到静态类当中。

全局应用,然后存储数据regist::set("aa", ...

set 和get是很好!
发表于 2012-3-23 13:08:18 | 显示全部楼层
这个是CS和BS的区别,BS是瘦客户端,不像CS你可以把数据都缓存到客户机器上。。。当然你可以像楼上各位说的把数据缓存到服务器上,所以不是框架的问题。
发表于 2012-4-15 18:38:00 | 显示全部楼层
模块的思想本来就是分离的,如果要用相同数据的话最好还是想别的办法,ci是单例模式的不知给ci实例一个变量可不可以在其他模块调用到
发表于 2012-6-8 14:00:58 | 显示全部楼层
回复楼主:
      问题提的很好,大家也积极参与。能否问下 你的问题(两个控制器下想共享数据) 具体到什么业务有这种需求? 给大家带点实际项目经验也好啊。
发表于 2013-8-2 16:53:44 | 显示全部楼层
PHP复制代码
 
class regist{
  static $date;
  public function set($name,$value){ self::$data[$name]=$value}
  public function get($name){return self::$data[$mame];}
}
复制代码

发表于 2017-1-6 11:04:29 | 显示全部楼层
paperen 发表于 2012-3-9 13:19
我也有一个想法,扩展CI的DB实现查询缓存(或者可以这么叫),而不用像ihymk那样手动set与get

把KEY做一次MD5不就可以了么?没有做不到只是想不到而已,哈哈哈
发表于 2017-1-16 21:14:58 | 显示全部楼层
多控制器调用时脑残的做法,也可能有人会说在V中调用某一个控制器之类的,你可以使用Model来规避,或者我建议使用CSMV这种逻辑,通过一种service层来处理业务逻辑和定制钩子之类的。www.icvio.com,这个项目就是用这种逻辑开发的项目
发表于 2017-5-3 08:52:53 | 显示全部楼层
我现在的做法是增加service层,把共享的数据放在service层,在控制器或者视图里加载。
发表于 2017-10-2 12:14:43 | 显示全部楼层
ihymk 发表于 2010-5-6 12:24
数据共享,可以用静态类特有的机制,将数据注册到静态类当中。

全局应用,然后存储数据regist::set("aa", ...

数据放到内存里了,这个应该可以实现数据缓存,减轻db压力

本版积分规则