首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

请教 Yii2 框架 afterSave 的推荐使用方式

  •  
  •   894021573 · 171 天前 · 800 次点击
    这是一个创建于 171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 对于 model 的 afterSave 方法使用有点疑问,请指教:
    • 假设有 a,b,c 三个保存数据的业务逻辑,且有先后顺序,则伪代码书写方式:
    • 第一种
    a();
    b();
    c();
    
    • 第二种
    a.save()
    a 里面有一个执行 b.save()的 afterSave()
    b 里面有一个执行 c.save()的  afterSave()
    
    • 如果仅仅是业务上的依赖关系,那么第二项种方式推荐使用吗?个人认为第二种方式没有第一种方式直接。如果考虑到共用代码,也可以把第一种方式直接封装下。如果第二种方式不推荐在这种场景下使用,那么其设计初衷是什么?
    2 回复  |  直到 2018-10-31 11:10:55 +08:00
        1
    ch3nz   171 天前   ♥ 1
    aftersave 里面不要放业务逻辑,代码多了或者人不靠谱了,调试起来会很费劲。基本上用调用来发个消息啊更新个缓存啊之类的失败也没太大关系的那种逻辑。
    既然三个方法是有顺序且相关联的,那就放到一个事务里面就好

    ```
    beginTransaction
    try
    a()
    b()
    c()
    commit
    catch
    rollback
    ```
        2
    898601566   171 天前
    楼上说的对,多个数据表操作放在事务里面比较合适
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2357 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 14:41 · PVG 22:41 · LAX 07:41 · JFK 10:41
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1