有谁还在用 doctrine 没

229 天前
 zzzkkk

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

1000 次点击
所在节点    PHP
10 条回复
BeijingBaby
229 天前
有点重,用的好都得是对象,可能会成为性能瓶颈。
Georgedoe
229 天前
laravel orm 底层就是用的 doctrine
dw2693734d
229 天前
难用
fincci
227 天前
现在公司用的 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
227 天前
@fincci
你对 doctrine 的 entity 各字段 需要 get set 怎么看 是不是太烦了
zzzkkk
227 天前
@fincci
symfony 我最痛恨的是 form 实在太恶心了 官方的 demo 项目还自带 form 用法
fincci
227 天前
@zzzkkk 还好吧,如果在 symfony 里面用命令行创建 entity 的话其实 set 和 get 方法自动就生成了,我感觉 set get 现在已经成为 php 面向对象的标准写法了,一般都是 private + get/set ,这样应该是解耦合隔离的思路
fincci
227 天前
@zzzkkk form ,我刚用的时候也觉得恶心,现在也是习惯了,如果不搞分离的话 form 还是挺有用的,现在我做前后端分离感觉 symfony 生态还是太差了,手动 validation ,data transformer ,这些玩意 symfony 都没有,用起来很不顺手
zzzkkk
227 天前
@fincci
validation 还是 laravel 好啊 form 简直反人类 把人误入歧途
有个项目叫 sylius 前年二次开发了一段时间 简直反人类 后悔了
ywisax
213 天前
有一个隐含的优点,就是如果基于 doctrine/orm 的文档去写代码的话,你的数据库表设计会变好。
这是 doctrine/orm 那么多约束带来的好处。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976639

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX