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

有谁还在用 doctrine 没

  •  
  •   zzzkkk · 216 天前 · 980 次点击
    这是一个创建于 216 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚打印了 英文文档 准备看一遍 比 laravel activerecord 有什么优势没?

    10 条回复    2023-10-10 02:28:25 +08:00
    BeijingBaby
        1
    BeijingBaby  
       216 天前
    有点重,用的好都得是对象,可能会成为性能瓶颈。
    Georgedoe
        2
    Georgedoe  
       216 天前
    laravel orm 底层就是用的 doctrine
    dw2693734d
        3
    dw2693734d  
       216 天前
    难用
    fincci
        4
    fincci  
       214 天前
    现在公司用的 symfony 框架,所以 doctrine 我也用了两年了,
    优点:他走的 datamapper 的路子,自带 entity 和 repository 分层,我觉得比 laravel 更加符合面向对象的思路,架构上扩展性还是挺好的,doctrine 本身也自带 DQL 缓存,还支持查询缓存,性能方面应该是不输 eloquent ,我觉得可能还更高点,另外还支持 sql walker 修改 DQL 语法树,支持自查询结果 hydration ,可玩性还是挺高的
    缺点:写起来没那么舒服,代码凉 eloquent 是 laravel 风格写法,写法很奔放,queryBuilder 可以各种注入闭包,写起来很流畅,doctrine 就不行了,另外 eloquent 里面的各种魔法操作,getAttribute ,setAttribute 以及 typecasting 等等,在 doctrine 里面也写不了,总之 doctrine 写起来没有 laravel 爽,限制很多
    zzzkkk
        5
    zzzkkk  
    OP
       214 天前
    @fincci
    你对 doctrine 的 entity 各字段 需要 get set 怎么看 是不是太烦了
    zzzkkk
        6
    zzzkkk  
    OP
       214 天前
    @fincci
    symfony 我最痛恨的是 form 实在太恶心了 官方的 demo 项目还自带 form 用法
    fincci
        7
    fincci  
       214 天前
    @zzzkkk 还好吧,如果在 symfony 里面用命令行创建 entity 的话其实 set 和 get 方法自动就生成了,我感觉 set get 现在已经成为 php 面向对象的标准写法了,一般都是 private + get/set ,这样应该是解耦合隔离的思路
    fincci
        8
    fincci  
       214 天前
    @zzzkkk form ,我刚用的时候也觉得恶心,现在也是习惯了,如果不搞分离的话 form 还是挺有用的,现在我做前后端分离感觉 symfony 生态还是太差了,手动 validation ,data transformer ,这些玩意 symfony 都没有,用起来很不顺手
    zzzkkk
        9
    zzzkkk  
    OP
       214 天前 via Android
    @fincci
    validation 还是 laravel 好啊 form 简直反人类 把人误入歧途
    有个项目叫 sylius 前年二次开发了一段时间 简直反人类 后悔了
    ywisax
        10
    ywisax  
       201 天前
    有一个隐含的优点,就是如果基于 doctrine/orm 的文档去写代码的话,你的数据库表设计会变好。
    这是 doctrine/orm 那么多约束带来的好处。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1009 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:52 · PVG 02:52 · LAX 11:52 · JFK 14:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.