有谁还在用 doctrine 没

2023-09-24 11:53:30 +08:00
 zzzkkk

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

1199 次点击
所在节点    PHP
10 条回复
BeijingBaby
2023-09-24 12:03:40 +08:00
有点重,用的好都得是对象,可能会成为性能瓶颈。
Georgedoe
2023-09-24 12:19:11 +08:00
laravel orm 底层就是用的 doctrine
dw2693734d
2023-09-24 14:08:44 +08:00
难用
fincci
2023-09-26 15:16:57 +08:00
现在公司用的 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
2023-09-26 15:19:00 +08:00
@fincci
你对 doctrine 的 entity 各字段 需要 get set 怎么看 是不是太烦了
zzzkkk
2023-09-26 15:20:12 +08:00
@fincci
symfony 我最痛恨的是 form 实在太恶心了 官方的 demo 项目还自带 form 用法
fincci
2023-09-26 15:37:19 +08:00
@zzzkkk 还好吧,如果在 symfony 里面用命令行创建 entity 的话其实 set 和 get 方法自动就生成了,我感觉 set get 现在已经成为 php 面向对象的标准写法了,一般都是 private + get/set ,这样应该是解耦合隔离的思路
fincci
2023-09-26 15:41:45 +08:00
@zzzkkk form ,我刚用的时候也觉得恶心,现在也是习惯了,如果不搞分离的话 form 还是挺有用的,现在我做前后端分离感觉 symfony 生态还是太差了,手动 validation ,data transformer ,这些玩意 symfony 都没有,用起来很不顺手
zzzkkk
2023-09-26 15:45:05 +08:00
@fincci
validation 还是 laravel 好啊 form 简直反人类 把人误入歧途
有个项目叫 sylius 前年二次开发了一段时间 简直反人类 后悔了
ywisax
2023-10-10 02:28:25 +08:00
有一个隐含的优点,就是如果基于 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