该项目用于快速搭建API服务端及后台框架
内置持续集成, 实现了自动化代码审查、composer包依赖自动构建、自动化测试、Docker镜像打包、发布和部署
http://username:password@139.198.9.208/zacksleo/yii2-app-advanced.git
,(将username和password替换为自己的用户名和密码)使用 composer install --prefer-dist
安装所需要的依赖库
使用 docker-compose 创建开发环境:
docker-compose up
修改 docker-compose.yml中 nginx 和 mysql 暴露的接口, 如
nginx:
build: ./services/nginx
ports:
- "886:886"
links:
- web
volumes_from:
- web
mysql:
image: mysql:5.6
ports:
- "3316:3306"
注意, 开发环境中, 可以暴露数据库接口到外网, 如果是正式环境,请关闭端口
修改 service/nginx/nginx.conf 中监听的端口, 使之与docker-compose.yml中的对应: 如listen 886 ssl;
迁移数据库
docker exec -it yii2appadvanced_web_1 ./yii migrate/up
yii2appadvanced_web_1
是容器的名称
或者使用
docker-compose run --rm web ./yii migrate/up
如何修改后台管理员账号和密码
修改 console\migrations\m170406_084842_create_admin_account.php 中的 `username`和 `password_hash`来修改后台账号密码
在api/modules下建立版本号对应的模块, 例如v1, 在controllers 中编写控制器, 提供接口
如果该接口需要认证, 可以继承 api\modules\v1\controllers
, 该类中实现接口认证
api目录为接口目录, modules中以版本号区别各个模块, 如
v1
,v2
接口的访问地址为 /api/v1
, v1 为版本号(模块名称)
RESTful接口需要配置URL, 该文件位置文件位于api\modules\v1\config.php
中, 一个控制器配置一条数据
后台地址为 /admin, 默认的账号为 lianluo
, 密码为 1!an1u0
在线演示地址: https://mops-test.lianluo.com:999/admin
如果是多个模块公用的模型, 放在 common\models
目录下
如果仅仅某个模块使用, 放在该模块的{api/backend/frontend}\models
目录下
表单模型放在 models\forms
目录下
查询模型放在 models\queries
目录下
行为放在 models\behaviors
目录下
帮助类放在 common\helpers
目录下
过滤器: 通用的放在 common\filters
目录下, 某个模块的放在 {api/backend/frontend}\filters
目录下
测试: 所有测试代码放在 tests
目录下
部署: 各个环境的部署脚本放在 deploy
目录下
可以使用Postman 调试接口
点击项目右侧的Wiki
, 开始编写文档, 首页(Home)只写简介和目录, 具体文档写在其他文件中, 使用markdown格式,
文档编写请参考 接口编写规范, 参考示例, 见用户中心的API文档
每次代码提交会自动进行PSR-2标准的格式检查, 同时也可以在本地提前进行格式审查
执行以下命令进行本地检查
php vendor/bin/phpcs --standard=PSR2 --ignore=vendor/,packages/,console/migrations/,common/helpers -w --colors ./
单元测试使用codeception框架进行测试
在tests/unit
目录下编写单元测试用例
运行测试: 在项目根目录下, 运行./vendor/bin/codecept run unit -c tests
进行单元测试
API测试使用codeception框架进行测试
在tests/api
目录下编写单元测试用例
运行测试: 在项目根目录下, 运行./vendor/bin/codecept run unit -c tests
进行API测试
编写.gitlab-ci.yml
文件, 配置持续集成, 本例中的持续集成分为以下几个阶段:
通过定义的composer.lock
安装项目所需要的依赖包
通过phpcs
来进行PSR-2规范的代码审查
通过根目录下定义的Dockerfile
来将整个项目打包成镜像(包含vendor目录), 打包成功后发布到Docker私有库中, 以便下一步的部署
通过在deploy
目录下docker-compose.yml
中的编排, 拉取私有库中的镜像, 进行部署
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。