Laravel显式和隐式路由(不推荐隐式)
显式路由:正常的Route::get/post/put/delelte这样的,
隐式路由:Route::resource和低版本(lar5.3以下)支持的Route::controller
example:
Route::resource('users', 'UsersController');
实际上是以下几个路由集合:
Verb Path Action Route Name
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
以laravel5.3为例,隐式路由的典型:Route::controller() 在5.2不推荐使用,5.3版本中直接移除
Implicit controller routes using Route::controller have been deprecated. Please use explicit route registration in your routes file. This will likely be extracted into a package.
1. 代码可读性降低,如果整个团队最开始的风格就是这样的,最大便利性为主,那就算了,
2. 项目做完不知道暴露了多少接口给外部,这样的情况很尴尬
3. 后期维护很差,实际业务中,对于用户或者其他对象的操作多是基础增删改查之外也有小功能,或者查找多余方法的时候,不如显式路由好用
4. 路由改名,给路由起别名的情况下,显式比隐式更好用