lux1177 / api-starter-kit
Requires
- php: >=8.2
- ext-ctype: *
- ext-iconv: *
- api-platform/core: ^3.3
- doctrine/dbal: ^3
- doctrine/doctrine-bundle: ^2.12
- doctrine/doctrine-migrations-bundle: ^3.3
- doctrine/orm: ^3.2
- lexik/jwt-authentication-bundle: ^3.1
- nelmio/cors-bundle: ^2.5
- phpdocumentor/reflection-docblock: ^5.4
- phpstan/phpdoc-parser: ^1.29
- symfony/asset: 7.1.*
- symfony/console: 7.1.*
- symfony/dotenv: 7.1.*
- symfony/expression-language: 7.1.*
- symfony/flex: ^2
- symfony/framework-bundle: 7.1.*
- symfony/property-access: 7.1.*
- symfony/property-info: 7.1.*
- symfony/runtime: 7.1.*
- symfony/security-bundle: 7.1.*
- symfony/serializer: 7.1.*
- symfony/twig-bundle: 7.1.*
- symfony/validator: 7.1.*
- symfony/yaml: 7.1.*
- vich/uploader-bundle: ^2.4
Requires (Dev)
- symfony/maker-bundle: ^1.60
Conflicts
This package is not auto-updated.
Last update: 2024-08-22 11:31:35 UTC
README
基于 Symfony、Doctrine、Maker Bundle、Migrations Bundle、VichUploader-bundle、Api-Platform 和 JWT-auth 的 API 开发工具包。
工具包已经创建了用户和媒体对象实体,并包含了所有 CRUD 路由。
工具包包含 3 个 Docker 容器:php、nginx 和 mysql。
安装
下载项目
composer create-project lux1177/api-starter-kit --ignore-platform-reqs --no-scripts project-name
进入项目目录
cd project-name
运行 Docker 容器
docker compose up -d
安装 composer 脚本
docker compose exec php composer install
要安装项目,运行命令
docker compose exec php bin/console ask:install
完成!您可以通过浏览器打开 https://:8505/api。顺便说一下,您可以通过修改 .env 文件中的 DOCKER_NGINX_PORT
变量来更改此端口。
Docker
要进入 php 容器,运行 docker compose exec php bash
要进入 mysql 容器,运行 docker compose exec mysql bash
要进入 nginx 容器,运行 docker compose exec nginx bash
您可以通过修改 .env 文件中的 DOCKER_PROJECT_NAME
变量来更改容器的名称前缀。
此外,您还可以通过修改 DOCKER_NGINX_PORT
和 DOCKER_DATABASE_PORT
来更改 nginx 和 mysql 的公共端口。
数据库只允许来自本地的连接。因此,当您在生产环境中使用项目,并希望从您的计算机连接到数据库时,您应该通过 ssh 代理连接。
Cron
您可以使用 docker/php/cron-file 进行 cron 任务。之后,您必须通过运行命令重新构建 php 容器:
docker compose up -d --build
Swagger
您可以通过编辑文件 config/packages/api_platform.yaml 来更改项目名称和描述。
Git 钩子
如果您不使用任何部署系统,您可以这样做:
cp docker/other-files/git/hooks/post-merge .git/hooks
这样 git 总是执行 bin/console ask:deploy
命令。您可以在文件 src/Command/AskDeployCommand.php 中更改此命令。此命令将使用 composer 安装需求、清除缓存、将 ./var 和 ./public/media 文件夹的所有权更改为 www-data,并将运行迁移。
JWT 密钥
要使用JSON Web Token系统,您必须创建私钥和公钥。当您安装项目时,它们已经被创建。您可以使用以下命令重新创建它们:
bin/console ask:generate:jwtKeys