poabob / slim-4-framework
一个RESTful PHP微服务框架!
0.1.1
2022-07-27 07:18 UTC
Requires
- php: >=8.0
- catfan/medoo: ^2.1
- lcobucci/jwt: ^4.0
- php-di/php-di: ^6.4
- selective/basepath: ^2.1
- slim/http: ^1.0
- slim/psr7: ^1.0
- slim/slim: ^4.10
- symfony/dotenv: ^6.0
- zircote/swagger-php: ^4.4
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^2.0.0
- codeception/module-phpbrowser: ^2.0.0
- codeception/module-rest: ^2.0.0
- docler-labs/codeception-slim-module: ^3.0
README
简介
该项目使用php SLIM 4框架和ADR模式构建,这是一个RESTful Api的兼容解决方案。
功能
- 框架 - SLIM 4
- 容器 - Docker
- 测试 - Codeception
- API文档 - Swagger-ui
- ORM - Medoo
- CI/CD - Github Actions
最低要求
- docker/docker-compose
- php: >=8.0
- composer
安装
从您想要安装新Slim应用的目录中运行此命令。您需要PHP 8.0或更高版本。
composer create-project poabob/slim-4-framework [my-app]
配置
- 编写您的数据库模式
init.sql
CREATE DATABASE IF NOT EXISTS Example;
USE Example;
CREATE TABLE IF NOT EXISTS `Example`.`Users` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `name` VARCHAR(64) NOT NULL, `password` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
- 数据库配置
如果您使用sqlite作为数据库,请提交mysql配置。
docker-compose.yml
mysql:
...
environment:
- MYSQL_DATABASE={DB}
- MYSQL_ROOT_PASSWORD={root_password}
- MYSQL_USER={user}
- MYSQL_PASSWORD={user_password}
- 生成Jwt的密钥
# Generate PRIVATE KEY
openssl genrsa -out private.pem 2048
# Generate PUBLIC KEY
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
- .env配置
如果您使用sqlite作为数据库,请提交mysql配置。
# dev/prod/stage/test
MODE=dev
# MYSQL CONFIG
DB_DRIVER=mysql
DB_NAME={DB}
DB_HOST=mysql
DB_USER={user}
DB_PASS={user_password}
DB_CHARSET=utf8mb4
# SQLITE CONFIG
# DB_DRIVER=sqlite
# DB_NAME={./path/Example.db}
# SETTINGS FOR DEBUG (0/1)
# please don't display error details in production environment.
DISPLAY_ERROR_DETAILS=1
LOG_ERROR_DETAILS=1
LOG_ERRORS=1
# JWT SETTINGS
JWT_ISSUER=SLIM_4
JWT_LIFETIME=86400
JWT_PRIVATE_KEY="{PRIVATE KEY}"
JWT_PUBLIC_KEY="{PUBLIC KEY}"
运行
开发模式
composer install
composer run start
生产模式
composer install --no-dev --optimize-autoloader
composer run start
测试模式
<!-- Before you test, please check out your vendor which was instlled. -->
composer run test