mael/symfony-api-template

基于 Symfony 框架预配置的模板,用于创建 API

1.0.0 2020-07-08 12:21 UTC

This package is auto-updated.

Last update: 2024-09-08 22:27:36 UTC


README

  • Synfony 版本 : 5.1.2

目录

  • 入门
  • 配置
    • Doctrine
    • 单元测试
    • PHPStan
    • JWT 配置
  • 第一次功能测试
  • 贡献
  • 许可

入门

要求

  • PHP 7.2.5
  • ext-ctype
  • ext-iconv
  • ext-json

首先使用 composer 创建一个新项目

$ composer create-project mael/symfony-api-template

在 composer.json 文件中,更改项目的名称、描述和许可证。

配置

在开始项目之前,您需要进行一些基本配置

Doctrine

在 .env 文件中,通过填写您的标识符来修改 DATABASE_URL(请参阅 Symfony 文档)

单元测试

我们的模板为您提供许多单元测试工具,您需要配置一些项目特定的内容

首先,在文件 WebTestCase.php 和 ApiTestCase.php 中,您需要修改用于登录用户的登录信息。

您需要填写以下变量 $username$password$route

例:

public function login(string $username = 'test', string $password = 'test', string $route = '/api/login')

PHPStan

我们还添加了 PHPStan,它允许您检测代码中的错误,您可以在 phpstan.neon 文件中更改检测级别。

您可以通过此链接找到 PHPStan 的文档 https://phpstan.org/

JWT 配置

我们假设您的 API 将使用 LexikJWTAuthenticationBundle。您可以在 config/packages 中找到配置。

首先,在 .env 文件中,通过您选择的字符串修改 JWT_PASSPHRASE。

在执行以下两个命令时,系统将要求您输入先前选择的密码短语

为了使 JWT 身份验证工作,您需要生成两个

$ openssl genpkey -out config/jwt/private.pem -aes256 -algorithm rsa -pkeyopt rsa_keygen_bits:4096
$ openssl pkey -in config/jwt/private.pem -out config/jwt/public.pem -pubout

我们还添加了一个用于刷新 JWT 令牌的捆绑包,您可以在以下链接中找到文档 https://github.com/markitosgv/JWTRefreshTokenBundle#readme

您还可以在 config/route.yaml 文件中配置路由。

请注意,您必须通过 JWT 在 security.yaml 文件中自行配置身份验证系统(请参阅捆绑包文档 https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/index.md)。

第一次功能测试

在进行第一次功能测试期间,您需要使用以下命令生成 sqlite 数据库

$ php bin/console doctrine:database:create --env test

贡献

如果您想为模板的改进做出贡献,您可以

  • 在此存储库上进行分支
  • 进行您的更改
  • 创建拉取请求

许可

此存储库受 MIT 许可证约束