V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mcfog
V2EX  ›  PHP

开始觉得我对 Laravel 的厌恶不是空穴来风

  •  
  •   mcfog · 2014-12-26 17:31:02 +08:00 · 10297 次点击
    这是一个创建于 3657 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Doctrine太笨重,最近换ORM用

    调查了半天,发现Eloquent脱离Laravel还算能活,于是用之

    嗯,自带Mutator和日期转换,出发点不错

    //protected $dates = ['date_field'];
    $model = find_one_model();
    $model->date_field->addDays(3);
    $model->save();
    

    然后就吐了,看了看实现,就觉得我对Laravel的厌恶不是空穴来风,而是对烂代码的天生直觉

    还有什么属性名字是snake而非camel
    作配置项的property满地都是(28个),而且有的public有的protected有的static有的非static
    大量方法都(new static)->xxx 毫无意义的构造实例

    各种槽点

    27 条回复    2016-09-18 19:10:23 +08:00
    kslr
        1
    kslr  
       2014-12-26 17:41:12 +08:00   ❤️ 1
    莫名其妙,你可以提交一份代码
    况且有洁癖适合用自己的
    tini8
        2
    tini8  
       2014-12-26 17:42:51 +08:00
    PHP的语言特性,决定了造不出来优雅的框架,php其实直接用就是了,这才是php的优点,快糙猛,容易部署
    gno23x
        3
    gno23x  
       2014-12-26 17:46:54 +08:00
    有洁癖的话还是用回Doctrine吧,不需要ORM的话,Doctrine/DBAL也不错。
    pertersonvv
        4
    pertersonvv  
       2014-12-26 17:54:29 +08:00
    今天看到好多人说Laravel很好,楼主为何厌恶它呢?
    mcfog
        5
    mcfog  
    OP
       2014-12-26 18:00:09 +08:00
    补充一下那段代码的槽点

    mutator是每次get的时候生成新的结果,每次set的时候才会更新内容

    所以mutator的结果如果是对象或者数组(嗯,比如自己带的日期`Carbon`对象)的时候,只有直接set整个field才有效果,改对象或数组的内容全都是无效的
    mingzhi
        6
    mingzhi  
       2014-12-26 18:06:04 +08:00
    个人意见.语言特性,不能决定框架的优雅吧.. 不小心点感谢了
    lidashuang
        7
    lidashuang  
       2014-12-26 18:20:40 +08:00
    楼主昨不用rails, Laravel和rails很像
    kmvan
        8
    kmvan  
       2014-12-26 18:24:32 +08:00
    空穴来风这成语能少用就少用吧,容易引起歧义。
    cattyhouse
        9
    cattyhouse  
       2014-12-26 18:25:21 +08:00 via iPhone
    慎用 空穴来风
    bcxx
        10
    bcxx  
       2014-12-26 18:30:30 +08:00   ❤️ 1
    snake_case 可以用 attribute 来改写啊……

    FYI, 要 OO 一点就不要直接去访问类属性……

    (new static) 是因为不想因为共享 mutable 对象啊…… 掉过坑就指定这样做的好了(虽然还不够彻底……)

    (其实这都不关人家事好嘛……
    roushan
        11
    roushan  
       2014-12-26 18:32:52 +08:00
    用PHP还搞面向对象?
    roychan
        12
    roychan  
       2014-12-26 18:46:25 +08:00
    空穴来风。穴:孔、洞;来:招致。有了洞穴才进风。比喻消息和谣言的传播不是完全没有原因的。也比喻流言乘机会传开来。
    zts1993
        13
    zts1993  
       2014-12-26 19:33:10 +08:00   ❤️ 1
    对这种开发效率不高,性能也没有优势,强行让挥匕首的人去挥大刀的框架毫无好感。
    ichou
        15
    ichou  
       2014-12-26 20:50:43 +08:00
    空穴来风 错用典型
    emmo
        16
    emmo  
       2014-12-26 20:56:51 +08:00
    @roychan
    @ichou 查查最新的词典,会发现已经改了。
    lausius
        17
    lausius  
       2014-12-26 21:00:18 +08:00
    @ichou 这个没有错。
    roychan
        18
    roychan  
       2014-12-26 21:11:29 +08:00
    @emmo 嗯,高考语文要求背的是这个意思。至于词汇的演变,另一个解释也慢慢被接受了。
    likang
        19
    likang  
       2014-12-26 21:21:06 +08:00
    这个 @ngf 应该深有同感... 他很早就跟我吐槽过 Laravel 的代码质量,可惜 PHP 我是小白,消化不了 >,<
    hitsmaxft
        20
    hitsmaxft  
       2014-12-26 21:36:10 +08:00   ❤️ 1
    laravel 不是一个好的框架, 把简单事情复杂化了. php不是这么用的. 该简单就简单, 像 yii2 也是入了魔道了.
    xuxu
        21
    xuxu  
       2014-12-26 21:50:26 +08:00
    Laravel的代码质量确实不咋滴,原来在github上吐槽过问题,结果人家不理直接关闭issue,但是接口写的还算不错。
    coronanimo
        22
    coronanimo  
       2014-12-26 23:33:44 +08:00
    Laravel 学了之后 月薪不过8000.
    crossmaya
        23
    crossmaya  
       2014-12-27 08:42:17 +08:00 via iPhone
    那为啥不自己写呢,我觉得代码本身质量已经不错
    ccbikai
        24
    ccbikai  
       2014-12-27 09:04:59 +08:00
    空穴来风 == True ?
    空穴来风 == False ?
    kankana
        25
    kankana  
       2014-12-27 09:52:50 +08:00
    哈哈,一部分人开始讨论成语的正确用法了

    那些变量的访问属性的不同深有同感, 经常得查下Eloquent/Model.php

    github上的issue, 处理起来的确很暴力.

    snake还是camel, 习惯了就好......

    其他的,我觉得还好啦.
    southwolf
        26
    southwolf  
       2015-12-14 21:37:52 +08:00
    @lidashuang 23333 Laravel 就是一个山寨版的 Rails 你不知道么
    cos800
        27
    cos800  
       2016-09-18 19:10:23 +08:00
    还是用 thinkphp 吧~ 反正别的人代码都是垃圾,何不用一个简单点的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   996 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:00 · PVG 06:00 · LAX 14:00 · JFK 17:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.