实习程序员用世界上最好的语言造了一个 ORM 轮子

2017-01-03 16:10:51 +08:00
 mateor95

如题目所述,

请诸位大大帮我看看

项目地址: https://github.com/mateor95/ORM

文档地址: https://mateor.me/archives/61

8674 次点击
所在节点    PHP
74 条回复
Jakesoft
2017-01-03 16:23:59 +08:00
楼主需要先理解什么是 ORM
baiyi
2017-01-03 16:24:43 +08:00
我原先也试图造过这一类的轮子,想弄个小框架出来,然后半路用上了 laravel......
yzhen123
2017-01-03 16:25:33 +08:00
这只能叫做 数据库操作工具类。。
ivvei
2017-01-03 16:28:46 +08:00
这个不是 ORM ……
baiyi
2017-01-03 16:29:14 +08:00
@yzhen123 laravel 里叫 查询构造器
dwood
2017-01-03 16:29:32 +08:00
ORM 即 Object Relation Mapping 的简写,指的是“对象关系映射”。对象在哪里?
gino86
2017-01-03 16:31:40 +08:00
这个时候是不是应该有人来推荐 symfony 的 doctrine
a591826944
2017-01-03 16:32:15 +08:00
将对象属性映射到数据库字段,才是 ORM 的套路
更改属性值, save 即更改数据库值,一切都在操作对象
Lucups
2017-01-03 16:32:36 +08:00
看成了"造了一个最好的 ORM 轮子",所以特意点进来围观的。。。

1 楼说得对,楼主需要先理解什么是 ORM 。。。
kongkongyzt
2017-01-03 16:36:08 +08:00
你还没明白什么是 ORM 。。。
murmur
2017-01-03 16:40:53 +08:00
说句不好听的,没有 SQL 过滤的话这东西连 shit 都不如,连手写 sql 的 mybatis 默认都带关键字过滤
无过滤连 util 都称不上
因为 php 的 pdo 都支持 sql 预编译和关键字过滤了
murmur
2017-01-03 16:47:41 +08:00
补充一点,当年 thinkphp 被人批判一番的原因,其中一点就是放着 php 自带的 pdo 不用,自己实现了一套 sql 转义和过滤,结果被人大抓漏洞
总有新人不信邪,想自己搞个大新闻,最后还是 naive
啥时候程序员才能改掉动不动就想造个轮子的习惯呢。。
yangff
2017-01-03 16:49:42 +08:00
@murmur 话不能这么说,谁能造个好用的 v8 的轮子给窝,我会很开心的
subpo
2017-01-03 16:50:03 +08:00
@murmur 为啥要改,就算写的不好,楼主的下一份工资也因为这个至少加了 200
murmur
2017-01-03 16:51:56 +08:00
@yangff v8 的竞品不就蜘蛛猴子和原来的三叉戟引擎现在不知道叫啥了。。这轮子一个人能造出来么
wyntergreg
2017-01-03 16:52:26 +08:00
然而 ORM 本身就是 shit ,楼主的数据库操作类才是实用的好东西
mateor95
2017-01-03 16:52:34 +08:00
@murmur 个人项目用自己的轮子撸着玩,成型项目还是用 laravel 撸呀
mateor95
2017-01-03 16:54:57 +08:00
@subpo 谢大大哈哈哈,目前大三上学期,还没有工作,等找工作一定写上( ORM 轮子 +200 金)
murmur
2017-01-03 16:55:05 +08:00
@subpo 最重要的安全部分没实现,不想自己实现也没关系,为什么不在 pdo 上做呢,我看他用了 pdo 的 excute ,但是是手拼参数真的一点过滤没有
新人有时候还是打击一下比较好
我以前自己魔改别的前端框架,改了将近 200k 的定制代码,加了一大堆定制功能,虽然 bug 都改完了,后来,发现还是别人写的好,稍微一点风吹草动别人的啥事没有,参数检查什么妥妥的扛过去,自己写的就开始报错了
翅膀没硬就不要学飞么,是不是这个道理
yangff
2017-01-03 16:56:13 +08:00
@murmur 窝是说 https://github.com/pmed/v8pp 这样的……
虽然这个已经满好用了(和直接用 v8 比起来),但是用来做 embedded 还是挺蛋疼的……

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

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

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

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

© 2021 V2EX