majksa/ api-template
Nette中的GraphQL API模板
1.1.1
2022-02-15 08:40 UTC
Requires
- php: 8.0.*
- ext-openssl: *
- beberlei/porpaginas: ^1.2
- code-lts/u2f-php-server: ^1.2
- contributte/bootstrap: ^0.5.0
- contributte/console: ^0.9.0
- contributte/di: ^0.5.0
- contributte/http: ^0.4.0
- contributte/monolog: ^0.6.0
- contributte/tracy: ^0.5.0
- contributte/utils: ^0.5.0
- gmostafa/php-graphql-client: ^1.13
- maxa-ondrej/nette-di: 1.0.0
- maxa-ondrej/nette-graphql: ^1.1.0
- myclabs/php-enum: ^1.8
- nettrine/annotations: ^0.7.0
- nettrine/dbal: ^0.7.0
- nettrine/fixtures: ^0.6.0
- nettrine/migrations: ^0.7.0
- nettrine/orm: ^0.8.0
- thecodingmachine/graphqlite-symfony-validator-bridge: ^5.0
Requires (Dev)
- contributte/dev: ^0.3
- dg/bypass-finals: ^1.3
- jetbrains/phpstorm-attributes: ^1.0
- mockery/mockery: ^1.3.0
- nelmio/alice: ^3.5.8
- ninjify/nunjuck: ^0.4
- orisai/coding-standard: ^2.2
- phpstan/phpstan: ^1.0
- phpstan/phpstan-doctrine: ^1.0
- phpstan/phpstan-nette: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is not auto-updated.
Last update: 2024-09-23 05:23:28 UTC
README
目标
主要目标是提供最佳准备的Nette GraphQL API启动项目,包括用户注册和登录。
关注点
- 最新的PHP 8.0
- mariadb
nette/*
包- 通过
maxa-ondrej/nette-graphql
(以及graphqlite)使用GraphQL - 通过Doctrine ORM(通过
nettrine/*
) - 通过
contributte/*
使用Symfony组件 - 通过CodeSniffer和
ninjify/*
进行编码风格检查 - 通过phpstan进行静态分析
- 通过Nette Tester和
ninjify/*
进行单元/集成测试
摘要
初始配置
由于所有操作都在Docker容器内进行,不需要额外的配置!不过您需要先安装一些工具
- docker和docker compose(从docker版本3.4开始包含在内)
可选
- make - 简化脚本配置
- php8.0和composer - 如果您想在没有启动Docker容器的情况下运行测试
安装
- 创建docker-compose.local.dist.yml的本地副本
cp docker-compose.local.dist.yml docker-compose.local.yml
- 启动服务器并运行数据库迁移
- 后端已经在URL上运行: https://:8080/graphql
如果您想更改端口,可以在docker-compose.local.yml中进行更改: services > server > ports
使用Makefile
如果您已安装Make,可以按照以下步骤进行最简单的设置。
make compose-dev
- 启动Docker网络make prepare-db
- 运行数据库迁移并生成测试数据
使用docker compose
docker compose -f docker-compose.local.yml up -d --force-recreate --build --remove-orphans
- 启动Docker网络docker exec -e NETTE_DEBUG=1 apitte-skeleton-app-1 bin/console orm:schema-tool:drop --force --full-database
- 删除数据库模式docker exec -e NETTE_DEBUG=1 apitte-skeleton-app-1 bin/console migrations:migrate --no-interaction
- 运行数据库迁移docker exec -e NETTE_DEBUG=1 apitte-skeleton-app-1 bin/console doctrine:fixtures:load --no-interaction --append
- 生成测试数据
质量保证
为了确保我们的代码质量,我们使用3个不同的工具
- CodeSniffer:用于格式化
- PHPStan:用于静态分析
- Nette Tester:用于运行测试
您可以使用composer run-script qa
简单地运行所有这些。
为了确保在每次提交之前运行这些工具,请运行: git config core.hooksPath .hooks
格式化
我们遵循一些基本约定,这些约定已在phpcs.xml
文件中设置。
- 运行
composer run-script cbf
进行代码格式化和优化 - 仅分析,运行
composer run-script cs
静态分析
为了防止常见且容易发现的错误,我们运行非常有用的工具PHPStan。
运行
composer run-script phpstan
运行测试
测试是编码的重要组成部分,并在部署前暴露出大多数错误。
要创建一个新的TestCase,您只需复制/tests/Unit
文件夹中的任何现有Test即可。如果希望添加新的集成测试,请在/tests/Integration
文件夹中创建一个新的TestCase。
- 运行所有测试:
composer run-script tests
- 运行测试覆盖率:
composer run-script coverage
运行GraphQL请求
向API发送请求最简单的方式是使用Altair。
Tracy栏
如果您想显示Tracy栏,这绝对可以做到!只需复制查询(如果有变量,则一并复制)并将它们添加到[GET]请求中的query
和variables
中。