用 ThinkPHP 3.2 开发的演示程序,说明如何实现以下基本的功能。
-
去掉地址里面的入口文件 index.php
-
用 Docker 配置本地开发环境
-
配置放入环境
-
基本的 CRUD
-
用 Laravel Mix 构建前端资源
-
用户认证:用户是否是系统的合法用户,包括注册、登录、注销和忘记密码,等等
- 注册
- 登录
- 注销
- 记住我
- 验证码
- 忘记密码
-
用户授权:用户是否有权做某项操作,比如是否可以访问某个页面/某项功能、是否可以读/写/删某项数据,等等
-
多语言支持
-
数据关联:模型之间的关联(一对一,一对多,属于,和多对多)
- 用户有一份个人资料,个人资料属于用户
- 用户有许多角色,角色有许多用户
- 作者(用户)写了许多文章,文章属于作者(用户)
- 文章有许多标签,标签有许多文章
- 用户有许多评论,评论属于用户
- 文章有许多评论,评论属于文章
-
Web API
- 用户认证:包括注册、登录和忘记密码,等等
- 用户授权
- 其他数据相关的API
-
AngularJS 1 客户端
- CRUD
- 分页
- 翻译
- 用户认证与授权
-
Using HTTPS
-
单元测试
- 测试路由
- 测试控制器
- 测试模型
-
数据中的多语言支持
将来可以考虑将用户认证与授权做成独立的扩展/插件/模块,单独发布。
我们用 Docker 建立本地开发环境。按照 安装 Docker 在你的开发电脑上安装 Docker。如果你的操作系统是 Windows,请按照 Install Docker for Windows 进行安装。
安装了 Docker 之后,用 Composer 安装 PHP 包:
$ docker run --rm --interactive --tty --volume $PWD:/app composer install
从 .env.example 拷贝创建 .env,并根据你的当前环境进行设置。在 Mac 或者 Linux 下可用如下命令:
$ cp .env.example .env
运行如下命令构建 Docker 映像,并在后台启动容器:
$ docker-compose up -d
运行数据库迁移和预置数据:
$ docker exec -ti thinkblog_app_1 vendor/bin/phinx migrate -c _phinx/phinx.php
$ docker exec -ti thinkblog_app_1 vendor/bin/phinx seed:run -c _phinx/phinx.php
安装 Node.js 依赖:
Mac/Linux 或者 Windows PowerShell:
$ docker run -it --rm -v "${PWD}":/usr/src/app -w /usr/src/app node:12 yarn
Windows 命令行:
C:\>docker run -it --rm -v "%cd%":/usr/src/app -w /usr/src/app node:12 yarn
构建前端资源:
$ docker run -it --rm -v "$PWD":/usr/src/app -w /usr/src/app node:12 yarn dev
然后你就可以在浏览器中查看网站 http://localhost:8084/。
最后,可以运行如下命令关闭容器:
$ docker-compose down
在线的演示程序已经下线。期待再次上线的,请等待通知。
欢迎任何反馈和建议!