为什么我不太想用 Laravel ?

2017-06-29 10:37:39 +08:00
 henter
http://mp.weixin.qq.com/s/lvpKP_dSdpLR_PC7gzFv4A
7582 次点击
所在节点    PHP
70 条回复
ylsc633
2017-06-29 11:50:17 +08:00
哈哈... V2 的 三大 论点

1.苹果 和其他
2.laravel 和其他
3.辞职等过年 和其他
jinzhe
2017-06-29 11:54:16 +08:00
php 本身就是脚本语言,没有必要搞那么复杂。
fyibmsd
2017-06-29 11:58:37 +08:00
解决 IDE 不友好的问题,只需要加个注释, @property / @method
holyghost
2017-06-29 12:06:38 +08:00
@MelodyMKII 想给 yii2 跪下。
Yuansir
2017-06-29 12:21:31 +08:00
换成任何一门语言的一个框架都可以写一篇比作者这篇还长的精彩吐槽
sunmonster
2017-06-29 12:33:37 +08:00
CI 虽然代码比较过时,但是简约的设计思想还是很先进的,又容易上手。CI -》 laravel -》 CI -》 Slim,silm 用得还不错
ipom
2017-06-29 12:44:48 +08:00
看了下文章,推荐作者试一下 Phalcon 框架
changwei
2017-06-29 12:57:34 +08:00
作为一个 php,java,python,golang,c#( asp.net )都写过的 hello world 工程师,这种文章就是月经贴,挑战或者博眼球吸粉的文章而已。

1 对 ide 不友好?你说的容器获取到的实例无法提示成员的问题,这是由于 php 本身是弱类型的原因,和框架是没有关系的。你去看看 java 的 spring,从容器中 get 出来的 bean 难道不是 object 吗?难道不要强制类型转换吗?况且 php7 出来那么久了,我用的不多,但是我还是知道他是有严格模式而且支持强类型的。至于其他什么 ORM,Facade 无法提示可以照着 5 楼所述。

2.1 讲到这个事情我就总是想起当年 Python,Golang 刚刚火起来的时候,人人都吐槽写 Python 要用游标卡尺,写 Golang 要被迫适应他的代码 format 方式,骂这些语言的作者在编码风格上强奸程序员。这些语言为了让所有风格和不同水平级别的程序员能够写出统一风格的代码,做了很多专制制度,而 PHP 从一开始所倡导的理念就是自由开放,给了程序员们最大的自由。而现在这反倒经常成为 PHP 的黑点。说句不好听的,有些人啊就是贱就是矫情,现在的程序员真难伺候。

2.2 我阅读过 BAT 某大厂的一款 PHP 框架源码,里面也把一些 PHP 中明明有的内置函数做了一层封装,比如说 json_encode,我开始也百思不得其解,直到后来看到 sh 部署脚本中,PHP 版本还是 5.2 我就明白了,框架作者考虑到 PHP 在版本迭代的过程中可能某些扩展和函数会被废弃,因此做了一层封装,而且 PHP 扩展一般都是没有命名空间的,而且大家都知道 PHP 的内置扩展和函数命名都是五花八门的,在一堆面向对象代码中写起来会很不优雅,再次封装一层也是为了让一些东西统一,或者在以后底层函数出现变化之后能够做更少的替换。

3.1 我也不想扯太多,麻烦文章作者去翻一番 Laravel 官方文档看看 Facade 的应用场景和解决的问题是什么再来喷把。作者的逻辑就好比是在冬天穿了一件夏天的衣服,冷得打哆嗦,还不停的骂说这衣服怎么这么破。

3.2 难道 JSP,ASPX 里面不能写逻辑?你喜欢什么模版引擎你自己用 Composer 配一下改一下就 OK 了,强行凑喷点条数我也是服了。

4.1 Symfony 那种注释写法不就和 JAVA 里面的注解很像吗,各有各的好处。我就是喜欢集中式的配置文件。这样的项目如果给别人接手,看一眼路由配置我就大概能从宏观角度知道整个项目的运作和具有的接口了,无论是做路由分组,批量分发中间件( JAVA 里面的拦截器)或者其他什么 URL 前后缀修改也是非常方便的。还是那句话:你喜欢什么路由你自己用 Composer 配一下改一下就 OK 了,强行凑喷点条数我也是服了。

4.2 你说的不就是 Hibernate 里面的注解吗? Laravel 其实是一个很轻量松散的框架,ORM 你用的不爽你可以直接替换掉或者干脆不用,像我我就不喜欢 ORM,我就喜欢查询构造器。好像 Laravel 官方的作者也说过,数据库,项目实体模型关联这些东西,在架构设计的时候就应该要非常谨慎地考虑。如果你做一个开发,数据库还要动不动就大修改,那么我认为你这个项目从一开始设计上就存在很多不合理不优雅的地方,说句不好听的话:你这种设计水平就算用了 Laravel 这种优雅的框架,也还是能把代码写的一团糟。而且 migration 本身就类似于一个数据库 DDL 的表结构版本控制,它记录了你的项目数据库修改日志,如果以后代码或者数据出现问题也可以很方便的回滚,这个优点你怎么不说呢?还是那句话:migration 你爱用不用,Laravel 又没有逼你使用它。

可能有些地方喷的不是很到位,还欢迎大家轻喷和指出我的错误。
changwei
2017-06-29 13:01:15 +08:00
哦对了,还有第一条,php5.5 开始对象就已经有了 class 成员可以让 ide 很方便的提示,而楼主给出的代码居然还是用的 make("xxx")这种字符串的方式给出对象字面量,有优雅和方便的特性放着不用能怪框架?
lixuda
2017-06-29 14:09:39 +08:00
一直用 ci
assad
2017-06-29 14:17:38 +08:00
laravel,性能差,自由度不够,容易使人懒,还学不到东西。把新手搞得什么都不会!
lyragosa
2017-06-29 14:18:17 +08:00
作为用上世纪框架的人瑟瑟发抖。
to2false
2017-06-29 14:32:36 +08:00
全文我就感觉到是作者想用 symfony,无奈用 laravel
twm
2017-06-29 14:47:35 +08:00
一直在用 Symfony
askfilm
2017-06-29 15:04:53 +08:00
一直在用 Symfony +1
zjsxwc
2017-06-29 15:09:41 +08:00
用了 3 年多的 symfony,体会就不想要用别的框架了。。
natforum
2017-06-29 15:13:55 +08:00
一直在用 Symfony +4
herozzm
2017-06-29 15:13:58 +08:00
文中作者居然没有用过 phalcon,还敢品头论足
ivmm
2017-06-29 15:16:24 +08:00
@jhdxr 我记得 dz 有个无心宠物虾米版,作者就是你整个头像
visonme
2017-06-29 15:21:40 +08:00
相比 Laravel 我更喜欢 slim,但是我的 slim 确实借鉴了不少 Laravel 的东西,当然还有 Symfony.
Laravel 的优秀没人会去质疑,但现实的世界里面还是适合自己和项目才是最重要的。

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

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

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

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

© 2021 V2EX