传统 CI 路由写法和 Laravel 路由的一些对比
今天看到一篇文章,有个人在抱怨 Laravel
的路由为何如此的繁琐,每一个方法都需要为之去写一个对应的 Route
,而不如 CI
那么方便的去直接通过魔法路由规定了 模块-控制器-方法 这样的范例,那么究竟为何这样设计呢,我列一写我想到的理由作为大家参考,希望能有所帮助:
- 如果你的
Route
是类似CI
自动猜测出来的,那么必定会经过所有控制器; - 如果仅仅
url
做出一些改变,你必定会增加一些文件,这是不希望看到的; CI
的Route
是通过file_exists
和is_dir()
来检查路由有消息,这是个好方法,但是对于复杂的项目这是完全累赘的,性能大大降低,而Laravel
采用静态的路线,直接告诉你这个路由走这个方法,非常的轻量级;- 你无法从命名你的
Controllers
,如果你的老板要你对路由进行归类,那将会很惨; Laravel
很好的支持了RESTful
;- 逻辑方法完全解耦,如果你想在
CI
里面实现一些中间件将会比较痛苦(虽然可以实现); route.php
是一个很好的文档记录,甚至可以让文档交接很顺畅,包括你可以为它写任何注释说明,花5秒钟去写一个路由映射,收获将会甚大;- 最后一点当然是遵循了
PSR-2
标准,遵循标准的东西往往短期难于接受,但是将来会受益匪浅。
本帖已被设为精华帖!