Laravel 每个控制器都需要写个路由,蛋疼

2016-04-19 18:55:51 +08:00
 iloveyou
用过 ci 、 yii ,都有默认的路由,基本上都是 module-controller-action ,思路走到哪,代码写到哪,非常流畅。文件组织的过程顺便把 seo 考虑进去了,只有特殊的 seo 需求才会专门订制路由。

如果每个 controller 都需要建个 route 那 controller 还有啥存在意义,都用闭包解决算了,或者路由里直接调 business 逻辑。

当然这样设计必然有其优越之处,不过编码也要考虑“爽脆度”,写起来不爽,用起来不干脆,我是适应不了。
25608 次点击
所在节点    PHP
54 条回复
zaishanfeng
2016-04-20 08:28:17 +08:00
如此优雅的路由方式 看来卤煮适合 tp 快去用吧
killall
2016-04-20 08:41:26 +08:00
@msg7086 microservice 同样面临 api 多的要命的情况
zztao
2016-04-20 09:07:19 +08:00
学习 servlet 要 mapper
cai314494687
2016-04-20 09:24:07 +08:00
还是 Yii2 好
Liang
2016-04-20 09:51:41 +08:00
route::controller('/', 'XXXController');

然后在 XXXController 实现你所有功能。

我是不是很聪明?
msg7086
2016-04-20 10:03:28 +08:00
@killall 合理拆分以后会好很多。
再怎么多得要命,总比拿到手发现就一句 match ":controller/:action/:id" 然后慢慢去翻几十个 Controller 来得好吧。
tinkerer
2016-04-20 10:21:02 +08:00
tinkerer
2016-04-20 10:21:30 +08:00
司禁止用自动路由模板
kchum
2016-04-20 10:23:08 +08:00
这样可以知道有多少页面和 api 暴露出去。
好管理。
icybee
2016-04-20 10:26:25 +08:00
所以说 laravel 是轻量级框架。。。
LukeXuan
2016-04-20 11:00:25 +08:00
写 controller 的时候用 annotation 添加路由就好了… symfony+doctrine 有一个解决方案的
gearh
2016-04-20 11:13:56 +08:00
解耦,像「 url 」 - 「控制器」,或者类似的「表单 」- 「变量」 - 「数据库」,先不考虑安全问题,像这种直肠子的设计,刚开始开发的时候爽,但是未来业务复杂了是要吃瘪的。
500miles
2016-04-20 11:54:00 +08:00
自动路由 : 约定 > 配置

自定义路由 : 配置 > 约定


设计理念不同 ......
yrdr
2016-04-20 12:19:36 +08:00
这是方便而不是繁琐,你做好路由分层,一样会很快
Felldeadbird
2016-04-20 15:14:35 +08:00
对于懒人肯定是 CI,YII,TP 这些舒服。其实思维转变需要一个过程。所以我一直没用 laravel 。
LINAICAI
2016-04-20 15:47:40 +08:00
卧槽,这都有人吐槽
lygmqkl
2016-04-20 23:45:28 +08:00
@msg7086 想请教你几个问题
第一 开发的内容不做对应文档说明吗?没有质量控,版本控制和测试吗?
第二 路由 seo 这些不是项目初期就应该定下来的吗?看你的意思是几万行的项目要出 20-30 种路由规则
第三 即使项目足够复杂,不应该考虑拆分吗?
第四 你所谓的 controller 自定义路由模式真的适合大团队开发的项目吗?感觉像参差不齐的外包团队,自己搞自己的完全不考虑别人。
最后想说,如有冒犯请多担待。有些话说出来是要负责的,你今天说的很多话可能会影响到很多人。
会用一个框架不是你说别的思想错的资本,同样是 PHPer 有人拿 5w 一个月有人拿 5000 人和人不一样罢了
lygmqkl
2016-04-20 23:47:45 +08:00
@killall 为你点个赞 总算有做过团队开发的出个声,团队开发中的问题不是有些人想想就能想到的。
denghongcai
2016-04-21 03:28:58 +08:00
@lygmqkl 不要这么激动,想想把你说的几个问题来问自动路由不也能成立?
团队的好恶决定是用什么样的模式来做,显式路由清晰,看着 URL 不用去猜,配合 IDE 易查找;隐式路由方便,在有的框架下还能和文件结构一一对应,在注释完善的情况下也不至于说真的乱到哪里去(当然加了注释的话和自动路由其实没什么区别)
说 Laravel 的性能呢,主要还是在框架启动速度上比较慢, swoole 套层壳还是可以接受的,除开启动速度,其他方面的性能和别的框架没有数量级的差别,路由判断也没有前几层楼说的几十毫秒- -
ango
2016-04-21 09:59:25 +08:00
@lygmqkl 确实,就现阶段我所经历的都是团队约定好路由层规则再开发(多个 Microservice ),要不然项目 URI 规则就被按每个人的想法来跑飞了,哪怕是选用 Laravel ,路由自定义配置也是按约定规则来个人配置(这个时候普遍反应都是多此一举,干嘛不直接 URI 映射 /显式路由)。
所以有时候也会有如同 LZ 一样的困惑……看了一下楼上各位的回复,对于 LZ 的困惑我觉得它依然存在……

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

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

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

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

© 2021 V2EX