Laravel 可不可以不用那个 ORM - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcbuzhiming
V2EX    PHP

Laravel 可不可以不用那个 ORM

  •  
  •   abcbuzhiming 2017-03-21 16:33:25 +08:00 6068 次点击
    这是一个创建于 3137 天前的主题,其中的信息可能已经有所发展或是发生改变。
    都说这个 ORM 工具是 laravel 慢的根源,本人从 java 过来的,先用过 hibernate ,然后过度到 mybatis ,因为有这个经历,从来不觉得硬需要一个 ORM 工具,只要数据库访问的接口方便好用灵活就行。 Laravel 的数据可基本操作可有什么非上 ORM 不可的地方吗?如果没有,能不能把 ORM 拆掉以增加速度
    25 条回复    2019-05-20 20:44:59 +08:00
    garveen
        1
    garveen  
       2017-03-21 16:35:52 +08:00
    你可以根本不用, DB 这个 facade 提供了足够的操作数据库的方法
    abcbuzhiming
        2
    abcbuzhiming  
    OP
       2017-03-21 16:37:40 +08:00
    @garveen 那如果我不用这个 ORM ,在一次请求过程中 Laraval 还会加载和 ORM 相关的组件吗?
    mooncakejs
        3
    mooncakejs  
       2017-03-21 16:38:06 +08:00
    可以不用。 equolent 太灵活,刚开始觉得很好用,越来越觉得不好用。
    ahkxhyl
        4
    ahkxhyl  
       2017-03-21 16:44:51 +08:00
    你的代码你做主~
    lookas2001
        5
    lookas2001  
       2017-03-21 17:54:41 +08:00
    autoload 还是会加载到类吧,但是你不用的话不会实例化他的(大概?
    jhdxr
        6
    jhdxr  
       2017-03-21 18:11:22 +08:00
    @abcbuzhiming 如果把『加载』定义为去 include/require 对应的文件,以及实例化对象。那么你不用到相应的功能,是不会加载的。

    @lookas2001 参见 spl_autoload_register , autoload 具体的规则是自己实现的。 composer 所实现的 autoload 的逻辑,在你没有去用到那个类的时候,是不会去读对应的文件的
    suren1986
        7
    suren1986  
       2017-03-21 18:13:22 +08:00
    DB:raw('raw sql command');
    quericy
        8
    quericy  
       2017-03-21 18:29:54 +08:00
    可以只用 illuminate 的查询构造器
    U7Q5tLAex2FI0o0g
        9
    U7Q5tLAex2FI0o0g  
       2017-03-21 18:35:21 +08:00
    考虑换一个轻量级的框架?
    cxbig
        10
    cxbig  
       2017-03-21 19:02:52 +08:00
    LZ 说的太模糊,你用什么方式发现 ORM 慢的?拿数据来说话好么?能不能发代码来让大家看看?
    changwei
        11
    changwei  
       2017-03-21 19:25:43 +08:00 via Android
    我只用查询构造器,主要还是简单方便,而且我对原生 sql 的阅读和理解更加快速。

    另外说一下, laravel 是按需加载。而且我有用过 xhprof 测过 laravel 的执行流程,最慢的是路由,当然 orm 也不是很快。
    orvice
        12
    orvice  
       2017-03-21 22:18:14 +08:00
    可以,建议 lz 试试看 lumen
    wdlth
        13
    wdlth  
       2017-03-21 22:25:33 +08:00
    相比于数据库的查询时间而言, ORM 的耗时其实也不算多少。
    当然对于高级 DBA 来说,就是喜欢一点点的玩坏 SQL 。
    Felldeadbird
        14
    Felldeadbird  
       2017-03-22 00:03:41 +08:00
    本身不是提供原生 SQL 写法吗?
    tcsky
        15
    tcsky  
       2017-03-22 00:31:00 +08:00
    慢的不是 orm,是路由什么的. php 和 java 特性差很多.
    dsg001
        16
    dsg001  
       2017-03-22 08:33:25 +08:00
    不用 laravel ,但 orm 只用 equolent
    superkey
        17
    superkey  
       2017-03-22 08:52:27 +08:00
    那为什么要用 laravel 呢
    likezun
        18
    likezun  
       2017-03-22 09:13:50 +08:00
    ORM 用过 propel 和 doctrine , 你没有理解 ORM 才会认为它慢, 简单的说你还不会用
    qhxin
        19
    qhxin  
       2017-03-22 09:40:05 +08:00 via Android
    eloquent 经常拆出来单独使用
    KIDJourney
        20
    KIDJourney  
       2017-03-22 09:40:21 +08:00
    慢是怎么得出的?
    iot
        21
    iot  
       2017-03-22 10:22:26 +08:00
    我写复杂的 sql 不用 ORM ,太复杂了,直接用 DB::raw
    ipom
        22
    ipom  
       2017-03-22 10:48:01 +08:00
    LZ 用 Phalcon 框架的 ORM 组件吧
    GnailiyLin
        23
    GnailiyLin  
       2017-03-22 15:25:32 +08:00
    在 laravel 框架上做过测试,结果很意外, eloquent 是最快的,但是耗费内存也是最高的。
    river1007
        24
    river1007  
       2017-03-23 14:17:14 +08:00
    https://github.com/slimphp/Slim 用这个吧。想换啥都行。
    whitecaihong
        25
    whitecaihong  
       2019-05-20 20:44:59 +08:00
    http://www.wangsitong.com/index.php/archives/121/ 我做过测试,楼上说哪慢的真的觉得 laravel 是世界上最好的语言的最好的框架么?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4559 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 10:01 PVG 18:01 LAX 03:01 JFK 06:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86