双休日犯懒,电脑都不想碰,于是连续两天啥都没写,心里有点过意不去。昨天晚上用过晚膳后强迫自己打开电脑,继续用 Lumen 写公司的办公系统。终于在晚上 12 点之前完成了所有数据表的重构和数据迁移工作。使用的是 Lumen 提供的 migrate
和 seed
功能。感觉非常方便。
今天开始写用户模块。其中遇到了一些问题。其中主要是由于 Lumen 和 Laravel 其中的差异导致的。Lumen 虽然是由 Laravel 精简而来,但有些模块使用方法上还是存在区别,所以如果看着 Laravel 的文档来弄的话,就难免会出现一些问题。比如:
- Laravel 中有的
RouteServiceProvider
对象在 Lumen 中是没有的。 - Laravel 中定义 route 时使用的是
Route
对象,而 Lumen 使用的则是$app
对象。 - 同时也因为以上原因,
Route
中可以使用的where
子句,在 Lumen 也是不存在的。 - Lumen 提供的
artisan
命令也没有 Laravel 丰富。
RouteServiceProvider
浪费了我比较多的时间。我本来想要实现自动将所有路由参数中的 {id}
强制限制为整数类型。于是按照 Laravel 手册中说的,创建一个 RouteServiceProvider
, 然后在 boot
方法中,加入下面类似的代码:
$router->pattern('id', '[0-9]+');
结果运行的时候报错失败,提示是传参的问题。google 了半天大部分都是 Laravel 环境的。于是转到 Lumen 文档中,发现只能使用以下方式逐条定义:
$app->get('user/{name:[\d]+}');
虽然感觉有些不妥,但时间紧,也就只能先将就着用下。
今天的成果就是实现了这个增删改功能的用户模块,如果再让我重来一遍,也许只需要 1/3 的时间吧。万事开头难,随着对 Lumen 框架的熟悉,使用起来应该会越来越顺手,明天继续。