新增yaf_db模块#428
Conversation
MySQL数据ORM框架,支持代理方式建立稳定数据库连接池, 使用文档可参考: https://github.com/caohao-php/ycdatabase
|
Catalogue Instruction 1、快速 - yaf_db是一个为PHP扩展写的纯C语言写的mysql数据库ORM扩展,众所周知,数据库ORM是一个非常耗时的操作,尤其对于解释性语言如PHP,而且对于一个项目来说,ORM大多数情况能占到项目很大的一个比例,所以这里我将MySQL的ORM操作用C语言实现,利用C语言的性能,提升ORM的性能。 |
YAF_DB document
|
补充了 markdown 文档 |
|
能做一些测试用例么, 代码变动有点多, 之前没注意到, 我好好看下。 thanks |
关于反对合并这个 PR 的主要原因
为什么使用 YAFPHP 的框架很多,流行常见的,大多数人都用过或了解过。这些框架提供的便捷性使得建立业务原型非常快。 什么是 ORM看完了 README 说明文档,基本上是一系列的工具函数,与 ORM 没有任何关系。参数绑定的语法,既不 MySQL-Native,也不 PHP-Native。ORM 起码要有 对象映射、关系映射。而不仅仅是数据库连接,不仅仅是简单的 CRUD。这里作者对 ORM 有误解。 增加了 YAF 的 Footprint文档里列出了6个特点。 1-5 没有必要说,因为安全,注入,参数绑定,这些是最基本的。单纯说快速,PHP 连接到 MySQL 性能并没有任何问题。
以上说明,来自一个使用 YAF 的团队客观评论。不带有任何偏见。请 YAF 作者 @laruence 考虑。 |
我觉得做什么事情是都是为了提升开发效率和性能,你因为YAF简洁,而拒绝接受ORM,然后全方位的去抨击这个东西,本身就是带有很主观性的一个事情,你可以说他不是ORM,但是不可否认,在我的工作中,他比起原生的SQL来说提升的开发效率是非常高的,而且性能方面也肯定比PHP版本的ORM要高不少,而且我认为他不是一个简单的CRUD,即便是简单的 CRUD,我觉得开发过程95%的时间都是写简单的CRUD,复杂的SQL一般都很少去用到 ORM,为什么不去封装下?一定要每个人去写原生的SQL,不知道你有没有认真看整个功能,我上面提供了非常丰富的特性,这花费了我大量精力,你可以说他不适合YAF,但是你去否定这个产品......,另外为什么一定要做对象映射,我这个全部都是以数组的形式输入输出,我觉得反而会更加灵活,如果你需要转化成对象,可以自己封装一层即可。 |
谢谢作者的回复。我想澄清一下,我没有评价这个 DB 扩展本身的好坏,更没有贬低它的意思。主要想表达的是,既然已经是以扩展形式存在,为什么硬要集成到框架中去。让开发者根据需要,选择性的去安装使用它,不是更好吗? |
既然这样,那我就贴个扩展的地址吧: https://github.com/caohao-php/ycdatabase 谢谢各位。 |
最后希望作者不要误会。我尊重你的劳动成果,我们的 PHP 项目也没有使用 ORM。接下来我会建议 PHP 同事去试用这个扩展,研究它所提升的方面。再次谢谢作者。 |
a93b6c0 to
9a673c6
Compare
|
方法比较简洁,不过要是可以支持链式写法就更舒适了,😘毕竟堆积的参数有些其实没必要,还容易错位 $db->table('xx')->columns(['p.*', "b.xxx"]) |
5cfc5ca to
fe37f30
Compare
|
支持增加orm,降低入门门槛,提高易用性,大部分人还是要集成orm |
嗯,你那种方式确实比较好,不过在c语言实现起来会相对有些复杂,所以我这边采用的相对简单一点的方式! |
|
什么时候能合并?连接池,php真的很需要 |
MySQL数据ORM框架,支持代理方式建立稳定数据库连接池, 使用文档可参考: https://github.com/caohao-php/ycdatabase , 仅支持 PHP7