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

感觉 Laravel 还是太重,有没有什么更加 [小] 却又不失 [优雅] 的框架

  •  
  •   cevincheung · 2016-04-27 00:45:53 +08:00 · 12778 次点击
    这是一个创建于 3138 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Slim 不带 ORM

    Twig 模板引擎有点不太习惯 {% extends('xxx') %} 相比 Blade @extends('xx') 感觉有点复杂了(多敲几次键盘 o( ̄┰ ̄*)ゞ 好矫情)

    路由倒是不错 ( 其实灰常喜欢这种预定路由规则的框框 ヾ(´∀`o)+

    难道一定要自己用 fastrouter+ORM 造轮子么……

    再吐槽一下,Laravel文档太太太太太太太太太弱

    第 1 条附言  ·  2016-04-27 10:16:00 +08:00
    更关键的是这货对 IDE 貌似不怎么友好。 Storm 木有提示……
    第 2 条附言  ·  2016-04-27 10:17:28 +08:00
    或者有木有什么让 laravel 支持 IDE 的方法
    85 条回复    2016-10-16 00:34:16 +08:00
    jadecoder
        1
    jadecoder  
       2016-04-27 00:49:57 +08:00
    Lumen
    cevincheung
        2
    cevincheung  
    OP
       2016-04-27 00:50:27 +08:00
    @jadecoder 木有 blade
    yangqi
        3
    yangqi  
       2016-04-27 00:57:08 +08:00
    你确实很矫情,选框架不能凭感觉
    hahasong
        4
    hahasong  
       2016-04-27 01:02:53 +08:00
    orvice
        5
    orvice  
       2016-04-27 01:06:16 +08:00
    用 slim + orm
    LINAICAI
        6
    LINAICAI  
       2016-04-27 01:09:28 +08:00
    重是因为依赖了很多库的原因吧,看看隔壁 node.js?
    m939594960
        7
    m939594960  
       2016-04-27 01:09:40 +08:00   ❤️ 1
    我和楼主的感觉一样。。 感觉 laravel 笨重 乱七八糟让我这种矫情的人挺不爽
    然后其他的框架 总是各种地方让我很不爽 。。。
    准备自己写个框架吧 。。。还有严重拖延症,而且好些想法写着写着就变了 然后越拖越久。


    打完了上面这些字 我发现 我真 TM 矫情
    KKKKKK
        8
    KKKKKK  
       2016-04-27 01:10:04 +08:00 via Android
    flask
    kslr
        9
    kslr  
       2016-04-27 01:16:26 +08:00
    @cevincheung 明明是有 blade 的
    yangqi
        10
    yangqi  
       2016-04-27 01:17:11 +08:00   ❤️ 1
    @m939594960 框架就是拿来用的,用的顺手基本都差不多。

    就好比你买把锤子,是用来敲钉子的,结果你矫情半天锤子重量要合适,手感还要好,重量分配也要适中等等不相关的东西,真是本末倒置。
    m939594960
        11
    m939594960  
       2016-04-27 01:19:25 +08:00
    @yangqi 道理我都懂。现在也在用 laravel 。但是我的强迫症总是逼着我选择更好的。
    herozzm
        12
    herozzm  
       2016-04-27 01:20:51 +08:00 via Android   ❤️ 1
    phalcon ,很轻,就一个 so 扩展文件
    ykjsw
        13
    ykjsw  
       2016-04-27 01:26:26 +08:00
    自己用 composer 搭一个,喜欢用什么组件就用什么
    miyuki
        14
    miyuki  
       2016-04-27 01:36:51 +08:00 via Android
    Flight
    yangxin0
        15
    yangxin0  
       2016-04-27 01:42:15 +08:00 via iPhone
    rails
    wdhwg001
        16
    wdhwg001  
       2016-04-27 02:22:41 +08:00 via iPhone
    php 作为一个以巨大而混乱的库为卖点的语言,本身就可以独立写东西的…
    cevincheung
        17
    cevincheung  
    OP
       2016-04-27 02:29:41 +08:00
    @kslr 刚刚看了一下。貌似确实没有。 View 对象不存在
    cevincheung
        18
    cevincheung  
    OP
       2016-04-27 02:32:05 +08:00
    @kslr 好吧,我错了。有。
    yangqi
        19
    yangqi  
       2016-04-27 02:37:47 +08:00
    @cevincheung 有的, lumen 的组件要自己手动在 bootstrap/app.php 里面初始化,默认只有 exception handler 和 kernel.

    https://github.com/laravel/lumen-framework/blob/5.2/composer.json
    zaishanfeng
        20
    zaishanfeng  
       2016-04-27 05:54:24 +08:00 via iPhone
    不会吧 你想多了 laravel 只是安装包大 用起来真是身轻如燕呢。 建议找找感觉。别先入为主
    tilv37
        21
    tilv37  
       2016-04-27 07:22:31 +08:00 via Android
    CI
    66beta
        22
    66beta  
       2016-04-27 08:07:02 +08:00
    @tilv37 CI 现在也是 laravel 风格
    liuhaotian
        23
    liuhaotian  
       2016-04-27 08:17:01 +08:00 via iPhone
    @cevincheung Lumen 最新不是为 API 而生去掉了用户模块吗
    cevincheung
        24
    cevincheung  
    OP
       2016-04-27 08:44:00 +08:00
    @liuhaotian 貌似是的,不过你不提我都差点忘了。为毛一个框架要接管用户验证逻辑?
    Roope
        25
    Roope  
       2016-04-27 09:06:38 +08:00
    Lumen + Vue.js 所有功能全部暴露成 API ,用 Vue.js 做 SPA
    cevincheung
        26
    cevincheung  
    OP
       2016-04-27 09:11:43 +08:00
    @Roope 另外一个话题, vue 是不是就不能让爬虫爬了?
    lee015
        27
    lee015  
       2016-04-27 09:11:52 +08:00 via Android
    目前是用 laravel 做管理后台, lumen 做 API
    cevincheung
        28
    cevincheung  
    OP
       2016-04-27 09:13:21 +08:00
    @lee015 .....还两个框架。。
    kiancyc
        29
    kiancyc  
       2016-04-27 09:33:39 +08:00
    Codeignitor 3.0
    FanError
        30
    FanError  
       2016-04-27 09:44:20 +08:00
    简单的看了下 laravel ,感觉那些依赖注入,反转控制,有点像 spring 那套。
    对于个人而言,假如 php 也整这么复杂的话,不如直接就用 spring boot 了。
    Marser
        31
    Marser  
       2016-04-27 09:45:33 +08:00
    果断上 phalcon 啊。。就编译一个 so 文件就行了。。
    Moker
        32
    Moker  
       2016-04-27 09:48:43 +08:00
    @cevincheung 不是,有数据请求可以直接爬接口,即使没接口也可以 phontomjs
    eqing
        33
    eqing  
       2016-04-27 09:53:59 +08:00
    不知道为什么 laravel 框架要用优雅来形容,所谓的优雅到底是什么概念?
    ango
        34
    ango  
       2016-04-27 09:55:23 +08:00
    相比 Java 或者其它语言来说, Laravel 真不算重,只是由于 PHP 语言特性,相比 PHP 其它的框架稍微有点吃性能而已。
    songjiaxin2008
        35
    songjiaxin2008  
       2016-04-27 09:59:28 +08:00 via iPhone   ❤️ 2
    但是看完了别的框架,你还是会用 Laravel (一个能打的都没有)
    500miles
        36
    500miles  
       2016-04-27 09:59:36 +08:00
    @eqing

    变量 方法名等 起的性感一点... 反正起名字翻字典半小时以上就是了........

    隐藏细节, 给程序员最直观, 简洁的接口
    Lucups
        37
    Lucups  
       2016-04-27 10:03:17 +08:00   ❤️ 1
    感觉楼主就想挑快递,又要快又要好又要便宜,最后的结果是:...
    cevincheung
        38
    cevincheung  
    OP
       2016-04-27 10:16:54 +08:00
    JobsLong
        39
    JobsLong  
       2016-04-27 10:17:50 +08:00
    @eqing Laravel 的核心是让开发者开发时更省心,追求开发速度,优雅指用了很多 PHP 新的特性和其他框架优秀的概念和组件,让你在 Web 开发是专注于去打造应用,而不是折腾工具。

    这应该是 Laravel 的 console 命令 artisan 的含义:

    > 工匠应该专注于作品的创意,不应该浪费精力,没限制地在折腾自己的工具。
    JobsLong
        40
    JobsLong  
       2016-04-27 10:20:03 +08:00   ❤️ 1
    楼主可以看一下 https://laracasts.com/series/ 的视频, Laravel 的文档不清晰吗?感觉楼主应该只是缺少一些开发技巧而已 :)
    a15819620038
        41
    a15819620038  
       2016-04-27 10:22:56 +08:00   ❤️ 1
    slim + eloquent orm + twig ,再自己写个 service provider 。

    用 slim 还没遇到不能集成的组件,微框架+组件,优雅时髦短小又高效。
    yangqi
        42
    yangqi  
       2016-04-27 10:26:46 +08:00
    phpstorm 有 laravel 的插件,另外 laravel 添加 laravel-ide-helper 这个 package 之后就会有提示了,很好用
    cevincheung
        43
    cevincheung  
    OP
       2016-04-27 10:28:00 +08:00
    @yangqi 我去装一下。话说有洁癖,怎么让 git 部署的时候自动去掉。
    Owenjia
        44
    Owenjia  
       2016-04-27 10:34:24 +08:00 via Android
    yaf 咋样?
    lygmqkl
        45
    lygmqkl  
       2016-04-27 10:35:02 +08:00
    如果 laravel 还是觉得重, 我建议你 slim


    用来用去我还是觉得 Yii 2 更对我的脾气。
    CTO
        46
    CTO  
       2016-04-27 11:04:54 +08:00
    Yii2 +1
    murmur
        47
    murmur  
       2016-04-27 11:15:23 +08:00
    不要因为大就不用 除非这个庞大真的影响了你系统性能 上缓存都没用
    java 那一套 spring 全家桶+hibernate 估计很多人看不顺眼 但是就这一套东西能把就算是弱智都能组织起来做出点什么来还能跑的不错
    suikator
        48
    suikator  
       2016-04-27 11:16:47 +08:00 via Android
    新版有 bug 没提示,旧版有提示
    whatisnew
        49
    whatisnew  
       2016-04-27 11:23:27 +08:00
    @CTO Yii2 的 logger 为什么要那么设计?
    1212e
        50
    1212e  
       2016-04-27 11:50:52 +08:00
    用着用着发现又拼出了一个 Laravel [doge]
    yangqi
        51
    yangqi  
       2016-04-27 11:52:17 +08:00
    @cevincheung 放到 require-dev 里面,然后只在 local env 下加载,这样就不影响部署了。
    mcfog
        52
    mcfog  
       2016-04-27 12:15:59 +08:00   ❤️ 1
    L 有 ide-helper ,虽然我就是因为看到有 ide-helper 所以完全对这个东西绝望了(还要那么脏的 hack 才能做到 IDE 支持,和重度依赖 IDE 的我实在三观不合)

    关于 ORM , L 的 Eloquent 其实还是能独立拉出来使的,有些脏项目我还会直接用 NotORM => http://www.notorm.com/ 简单直接粗暴爽

    关于自己玩,建议看看 PSR-7 ,我觉得有潜力干趴 symfony/http-foundation 的,嗯, slim3 也算

    ***广告时间***

    自己撸的 psr7 middleware organizer (嗯,类似 node 家的 connect)

    https://github.com/mcfog/nimo

    基于它和 pimple 容器,反射依赖注入的轻型框架

    https://github.com/mcfog/lit

    自用感觉良好,文档和 example 什么的拖延中……
    Jessey
        53
    Jessey  
       2016-04-27 12:22:27 +08:00 via iPhone
    ci 用了三年,源码都能背了。不合适就自己改框架源码
    cevincheung
        54
    cevincheung  
    OP
       2016-04-27 12:26:00 +08:00
    @mcfog 太懒不想造轮子
    redvoilin
        55
    redvoilin  
       2016-04-27 12:46:16 +08:00
    ruby on rails
    xuwenmang
        56
    xuwenmang  
       2016-04-27 13:14:22 +08:00   ❤️ 1
    多了你嫌多了,少了你嫌少了。

    其实具体看你做什么, 2000W 的跑车去耕田,连一头 2000 块的驴都不如。

    segmentfault 上看过一个简单的总结:大项目用小框架,小项目用大框架
    elarity
        57
    elarity  
       2016-04-27 13:23:36 +08:00
    竟然没有一个人提 Yaf
    cevincheung
        58
    cevincheung  
    OP
       2016-04-27 13:44:11 +08:00
    @yangqi 怎么只在 local dev 加载
    cevincheung
        59
    cevincheung  
    OP
       2016-04-27 13:44:25 +08:00
    @elarity yaf 不也是自动路由咩?
    LevineChen
        60
    LevineChen  
       2016-04-27 13:48:38 +08:00
    说 Thinkphp 应该会被喷吧
    cevincheung
        61
    cevincheung  
    OP
       2016-04-27 13:49:08 +08:00
    php230
        62
    php230  
       2016-04-27 17:31:51 +08:00
    YAF +10086
    visonnn
        63
    visonnn  
       2016-04-27 18:59:48 +08:00   ❤️ 1
    phalcon 美妙得不要不要得
    liyj144
        64
    liyj144  
       2016-04-27 19:01:22 +08:00
    听到说小,还有比 CI 优雅的吗?
    leonlh
        65
    leonlh  
       2016-04-27 19:20:17 +08:00
    slim
    cszchen
        66
    cszchen  
       2016-04-27 19:26:19 +08:00 via iPhone
    @lygmqkl 我也喜欢这个,源码都看了,太全了,开发起来坐火箭一样
    cszchen
        67
    cszchen  
       2016-04-27 19:29:47 +08:00 via iPhone
    yaf 只有路由,而且很死板,也不支持命名空间。
    cszchen
        68
    cszchen  
       2016-04-27 19:30:11 +08:00 via iPhone
    个人见解,不喜勿喷
    tomwei7
        69
    tomwei7  
       2016-04-27 20:00:50 +08:00
    slimframework 你值得拥有
    whatisnew
        70
    whatisnew  
       2016-04-27 20:05:14 +08:00
    @mcfog 评论一下 yii2 ?
    lee015
        71
    lee015  
       2016-04-27 20:15:06 +08:00 via Android
    @cevincheung
    这是因为一开始 API 也在 laravel 里,觉得太重了就把 API 单独拿出来,稍改下就顺畅移到 lumen 里了,管理后台反正内部使用,就继续 laravel 不改了。
    ayaseangle
        72
    ayaseangle  
       2016-04-27 20:18:24 +08:00
    感觉和 rails 一样。
    GhostEX
        73
    GhostEX  
       2016-04-27 20:28:35 +08:00
    @visonnn 美妙在哪里。。。学习成本和使用范围广么
    tcsky
        74
    tcsky  
       2016-04-27 22:34:57 +08:00
    laravel 安装 ide_helper 扩展就能自动提示了
    audi
        76
    audi  
       2016-04-27 22:42:15 +08:00
    phithon
        77
    phithon  
       2016-04-28 00:56:15 +08:00
    用过一段时间 slim+Eloquent+twig , Eloquent 确实好用,我正好用到 slim 里了。
    最开始用感觉轻量的框架( slim )确实好,很多东西像搭积木一样可以自由选择,但时间久了发现,很累,每需要一个新组件,就要再去 composer 里找,要想办法组装到自己的项目里。。
    后来就有这样的感觉,虽然我感觉自己的项目只需要一个轻框架就能搞定,但随着慢慢开发,我就发现其实拼拼凑凑自己的项目也不轻了。这个时候还不如用 laravel 更简单,好维护。
    后来还是用回 laravel 了,但保留了一个 api , api 用的还是 slim 。
    我感觉 slim+Eloquent+twig 还是不错的,楼主可以参考一下。
    JobsLong
        78
    JobsLong  
       2016-04-28 12:20:46 +08:00
    跟着 laravel 5.1 成为更好的 PHP 开发者 - 台湾 Laravel 社群的分享 [PDF Download]( http://7xih70.com1.z0.glb.clouddn.com/phpconf-taiwan-2015grow-with-laravel51-151008114345-lva1-app6891.pdf)
    cloa
        79
    cloa  
       2016-04-28 16:24:59 +08:00
    phalcon
    Owenjia
        80
    Owenjia  
       2016-05-12 14:09:12 +08:00
    @elarity
    我前面明明提到了 yaf 啊,为什么说没有人提到呢?
    abc123ccc
        81
    abc123ccc  
       2016-07-12 10:32:30 +08:00
    @elarity
    @cszchen

    贴不了图片,郁闷。

    //路由规则
    'bagua163.com'=>array(
    'xingming/:xingming/:danfuxing' => 'Index/xingming',
    'xingming/:xingming' => 'Index/xingming',

    'meizhuang/:page' => 'Cate/index?cate=meizhuang',//
    'meizhuang' => 'Cate/index?cate=meizhuang',
    ),
    'shouji.bagua163.com'=>array(
    ':mobile' => 'Index/shouji',
    ),

    你让 Yaf 实现上面的路由试试,我把它的路由改得和 TP3.1 差不多了,但换到了 PHP7 ,莫名其妙的问题。干脆放弃了 Yaf ,以后再看它吧。

    而且多个二级子域名在路由相同的情况下, yaf 会指到第一个匹配的上面去。弄得我心烦。

    本来匠人就应该注重产品,而我却把焦点放在了工具上。错一次,不想再错第二次。选一个你熟悉的框架就行。
    kekeones
        82
    kekeones  
       2016-07-26 11:01:46 +08:00 via iPhone
    @abc123ccc yaf 可以实现上面的路由
    abc123ccc
        83
    abc123ccc  
       2016-07-27 09:21:54 +08:00
    @kekeones 实现起来很困难吧。我试了一下,各种问题。随后就停止使用 yaf 开发,使用熟悉的 thinkphp3.1 开发。
    xytjy
        84
    xytjy  
       2016-08-02 15:46:46 +08:00
    你可以试一下 corethink ,很轻量,它是基于 tp 的,不过比 tp 功能更全,
    billowqiu
        85
    billowqiu  
       2016-10-16 00:34:16 +08:00
    laravel 真的好重,看代码都绕来绕去的。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.